提交 8e417220 authored 作者: colm's avatar colm 提交者: Mike Jerris

FS-9952: Add blade rpc error response creation

上级 aeff38c1
...@@ -811,6 +811,31 @@ KS_DECLARE(ks_rpcmessageid_t) blade_rpc_create_response(cJSON *request, ...@@ -811,6 +811,31 @@ KS_DECLARE(ks_rpcmessageid_t) blade_rpc_create_response(cJSON *request,
return msgid; return msgid;
} }
KS_DECLARE(ks_rpcmessageid_t) blade_rpc_create_errorresponse(cJSON *request,
cJSON **errorP,
cJSON **responseP)
{
ks_rpcmessageid_t msgid = blade_rpc_create_response(request, NULL, responseP);
if (msgid) {
if (errorP) {
if (*errorP) {
cJSON_AddItemToObject(*responseP, "error", *errorP);
}
else {
cJSON *error = cJSON_CreateObject();
cJSON_AddItemToObject(*responseP, "error", error);
*errorP = error;
}
}
}
return msgid;
}
const char BLADE_JRPC_METHOD[] = "method"; const char BLADE_JRPC_METHOD[] = "method";
const char BLADE_JRPC_ID[] = "id"; const char BLADE_JRPC_ID[] = "id";
const char BLADE_JRPC_FIELDS[] = "blade"; const char BLADE_JRPC_FIELDS[] = "blade";
......
...@@ -127,6 +127,10 @@ KS_DECLARE(ks_rpcmessageid_t) blade_rpc_create_response(cJSON *request, ...@@ -127,6 +127,10 @@ KS_DECLARE(ks_rpcmessageid_t) blade_rpc_create_response(cJSON *request,
cJSON **reply, cJSON **reply,
cJSON **response); cJSON **response);
KS_DECLARE(ks_rpcmessageid_t) blade_rpc_create_errorresponse(cJSON *request,
cJSON **reply,
cJSON **response);
KS_DECLARE(ks_status_t) blade_rpc_parse_message(cJSON *message, KS_DECLARE(ks_status_t) blade_rpc_parse_message(cJSON *message,
char **namespace, char **namespace,
char **method, char **method,
......
...@@ -286,7 +286,7 @@ KS_DECLARE(ks_rpcmessageid_t) ks_rpcmessage_create_errorresponse( ...@@ -286,7 +286,7 @@ KS_DECLARE(ks_rpcmessageid_t) ks_rpcmessage_create_errorresponse(
cJSON **errorP, cJSON **errorP,
cJSON **responseP) cJSON **responseP)
{ {
ks_rpcmessageid_t msgid = ks_rpcmessage_new_response(request, errorP, responseP); ks_rpcmessageid_t msgid = ks_rpcmessage_new_response(request, NULL, responseP);
cJSON *respmsg = *responseP; cJSON *respmsg = *responseP;
if (msgid) { if (msgid) {
...@@ -296,6 +296,9 @@ KS_DECLARE(ks_rpcmessageid_t) ks_rpcmessage_create_errorresponse( ...@@ -296,6 +296,9 @@ KS_DECLARE(ks_rpcmessageid_t) ks_rpcmessage_create_errorresponse(
*errorP = error; *errorP = error;
cJSON_AddItemToObject(respmsg, ERROR, error); cJSON_AddItemToObject(respmsg, ERROR, error);
} }
else if (errorP && *errorP) {
cJSON_AddItemToObject(*responseP, ERROR, *errorP);
}
} }
return msgid; return msgid;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论