X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fafb-wsj1.c;h=5859bd3682d343eda1c5fa258d6c30c134430ba2;hb=80551a0405e8a208af587b6fff7f784a1a2ffbf4;hp=cf31a57ab6f83fa6908f414ecc48fb5bd46bd29d;hpb=8112056eecede587bf884f56629858c8b21bdbec;p=src%2Fapp-framework-binder.git diff --git a/src/afb-wsj1.c b/src/afb-wsj1.c index cf31a57a..5859bd36 100644 --- a/src/afb-wsj1.c +++ b/src/afb-wsj1.c @@ -242,7 +242,7 @@ static void wsj1_on_text(struct afb_wsj1 *wsj1, char *text, size_t size) size_t items[10][2]; int n; struct afb_wsj1_msg *msg; - struct wsj1_call *call; + struct wsj1_call *call = NULL; /* allocate */ msg = calloc(1, sizeof *msg); @@ -427,18 +427,18 @@ struct afb_wsj1 *afb_wsj1_msg_wsj1(struct afb_wsj1_msg *msg) static int wsj1_send_isot(struct afb_wsj1 *wsj1, int i1, const char *s1, const char *o1, const char *t1) { char code[2] = { (char)('0' + i1), 0 }; - return afb_ws_texts(wsj1->ws, "[", code, ",\"", s1, "\",", o1, t1 != NULL ? ",\"" : "]", t1, "\"]", NULL); + return afb_ws_texts(wsj1->ws, "[", code, ",\"", s1, "\",", o1 == NULL ? "null" : o1, t1 != NULL ? ",\"" : "]", t1, "\"]", NULL); } static int wsj1_send_issot(struct afb_wsj1 *wsj1, int i1, const char *s1, const char *s2, const char *o1, const char *t1) { char code[2] = { (char)('0' + i1), 0 }; - return afb_ws_texts(wsj1->ws, "[", code, ",\"", s1, "\",\"", s2, "\",", o1, t1 != NULL ? ",\"" : "]", t1, "\"]", NULL); + return afb_ws_texts(wsj1->ws, "[", code, ",\"", s1, "\",\"", s2, "\",", o1 == NULL ? "null" : o1, t1 != NULL ? ",\"" : "]", t1, "\"]", NULL); } int afb_wsj1_send_event_j(struct afb_wsj1 *wsj1, const char *event, struct json_object *object) { - return afb_wsj1_send_event_s(wsj1, event, json_object_to_json_string(object)); + return afb_wsj1_send_event_s(wsj1, event, json_object_to_json_string_ext(object, JSON_C_TO_STRING_PLAIN)); } int afb_wsj1_send_event_s(struct afb_wsj1 *wsj1, const char *event, const char *object) @@ -448,7 +448,7 @@ int afb_wsj1_send_event_s(struct afb_wsj1 *wsj1, const char *event, const char * int afb_wsj1_call_j(struct afb_wsj1 *wsj1, const char *api, const char *verb, struct json_object *object, void (*on_reply)(void *closure, struct afb_wsj1_msg *msg), void *closure) { - return afb_wsj1_call_s(wsj1, api, verb, json_object_to_json_string(object), on_reply, closure); + return afb_wsj1_call_s(wsj1, api, verb, json_object_to_json_string_ext(object, JSON_C_TO_STRING_PLAIN), on_reply, closure); } int afb_wsj1_call_s(struct afb_wsj1 *wsj1, const char *api, const char *verb, const char *object, void (*on_reply)(void *closure, struct afb_wsj1_msg *msg), void *closure) @@ -477,24 +477,14 @@ int afb_wsj1_call_s(struct afb_wsj1 *wsj1, const char *api, const char *verb, co return rc; } - -int afb_wsj1_reply_ok_j(struct afb_wsj1_msg *msg, struct json_object *object, const char *token) -{ - return afb_wsj1_reply_ok_s(msg, json_object_to_json_string(object), token); -} - -int afb_wsj1_reply_ok_s(struct afb_wsj1_msg *msg, const char *object, const char *token) -{ - return wsj1_send_isot(msg->wsj1, RETOK, msg->id, object, token); -} - -int afb_wsj1_reply_error_j(struct afb_wsj1_msg *msg, struct json_object *object, const char *token) +int afb_wsj1_reply_j(struct afb_wsj1_msg *msg, struct json_object *object, const char *token, int iserror) { - return afb_wsj1_reply_error_s(msg, json_object_to_json_string(object), token); + const char *objstr = json_object_to_json_string_ext(object, JSON_C_TO_STRING_PLAIN); + return afb_wsj1_reply_s(msg, objstr, token, iserror); } -int afb_wsj1_reply_error_s(struct afb_wsj1_msg *msg, const char *object, const char *token) +int afb_wsj1_reply_s(struct afb_wsj1_msg *msg, const char *object, const char *token, int iserror) { - return wsj1_send_isot(msg->wsj1, RETERR, msg->id, object, token); + return wsj1_send_isot(msg->wsj1, iserror ? RETERR : RETOK, msg->id, object, token); }