summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Bollo <jose.bollo@iot.bzh>2017-06-02 15:38:13 +0200
committerJosé Bollo <jose.bollo@iot.bzh>2017-06-02 15:38:13 +0200
commitd3c80685ed6067f4899635c0328bbd8b70a2ed90 (patch)
treed2e0a04cc8ccf032ec8f8893252d47cfb74d1e84
parent16899582de97ffa492768e5d96cec813f44417ea (diff)
Localize construction of afb_arg
Change-Id: I08f1bc228c419243044949aa3c4094873932d3f2 Signed-off-by: José Bollo <jose.bollo@iot.bzh>
-rw-r--r--src/afb-msg-json.c19
-rw-r--r--src/afb-msg-json.h2
-rw-r--r--src/afb-xreq.c19
3 files changed, 16 insertions, 24 deletions
diff --git a/src/afb-msg-json.c b/src/afb-msg-json.c
index f2922cb8..6aaec434 100644
--- a/src/afb-msg-json.c
+++ b/src/afb-msg-json.c
@@ -19,12 +19,9 @@
#include <json-c/json.h>
-#include <afb/afb-req-itf.h>
-
#include "afb-msg-json.h"
#include "afb-context.h"
-
struct json_object *afb_msg_json_reply(const char *status, const char *info, struct json_object *resp, struct afb_context *context, const char *reqid)
{
json_object *msg, *request;
@@ -89,22 +86,6 @@ struct json_object *afb_msg_json_event(const char *event, struct json_object *ob
return msg;
}
-struct afb_arg afb_msg_json_get_arg(struct json_object *object, const char *name)
-{
- struct afb_arg arg;
- struct json_object *value;
-
- if (json_object_object_get_ex(object, name, &value)) {
- arg.name = name;
- arg.value = json_object_get_string(value);
- } else {
- arg.name = NULL;
- arg.value = NULL;
- }
- arg.path = NULL;
- return arg;
-}
-
struct json_object *afb_msg_json_internal_error()
{
return afb_msg_json_reply_error("failed", "internal error", NULL, NULL);
diff --git a/src/afb-msg-json.h b/src/afb-msg-json.h
index 0434e209..b2f75f2d 100644
--- a/src/afb-msg-json.h
+++ b/src/afb-msg-json.h
@@ -27,6 +27,4 @@ extern struct json_object *afb_msg_json_reply_error(const char *status, const ch
extern struct json_object *afb_msg_json_event(const char *event, struct json_object *object);
-extern struct afb_arg afb_msg_json_get_arg(struct json_object *object, const char *name);
-
extern struct json_object *afb_msg_json_internal_error();
diff --git a/src/afb-xreq.c b/src/afb-xreq.c
index fbed6ed1..9c4cab8f 100644
--- a/src/afb-xreq.c
+++ b/src/afb-xreq.c
@@ -63,10 +63,23 @@ static struct json_object *xreq_json_cb(void *closure)
static struct afb_arg xreq_get_cb(void *closure, const char *name)
{
struct afb_xreq *xreq = closure;
+ struct afb_arg arg;
+ struct json_object *object, *value;
+
if (xreq->queryitf->get)
- return xreq->queryitf->get(xreq, name);
- else
- return afb_msg_json_get_arg(xreq_json_cb(closure), name);
+ arg = xreq->queryitf->get(xreq, name);
+ else {
+ object = xreq_json_cb(closure);
+ if (json_object_object_get_ex(object, name, &value)) {
+ arg.name = name;
+ arg.value = json_object_get_string(value);
+ } else {
+ arg.name = NULL;
+ arg.value = NULL;
+ }
+ arg.path = NULL;
+ }
+ return arg;
}
static void xreq_success_cb(void *closure, struct json_object *obj, const char *info)