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_ID[] = "id";
const char BLADE_JRPC_FIELDS[] = "blade";
cJSON **reply,
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,
char **namespace,
char **method,
cJSON **errorP,
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;
if (msgid) {
*errorP = error;
cJSON_AddItemToObject(respmsg, ERROR, error);
}
+ else if (errorP && *errorP) {
+ cJSON_AddItemToObject(*responseP, ERROR, *errorP);
+ }
}
return msgid;