file: add md5sum support
[project/rpcd.git] / plugin.c
index ba8d8db..70d2c56 100644 (file)
--- a/plugin.c
+++ b/plugin.c
@@ -1,7 +1,7 @@
 /*
  * rpcd - UBUS RPC server
  *
- *   Copyright (C) 2013 Jo-Philipp Wich <jow@openwrt.org>
+ *   Copyright (C) 2013-2014 Jo-Philipp Wich <jow@openwrt.org>
  *
  * Permission to use, copy, modify, and/or distribute this software for any
  * purpose with or without fee is hereby granted, provided that the above
@@ -108,12 +108,9 @@ rpc_plugin_call_finish_cb(struct blob_buf *blob, int stat, void *priv)
        {
                if (c->obj)
                {
-                       if (json_object_get_type(c->obj) == json_type_object ||
-                           json_object_get_type(c->obj) == json_type_array)
-                       {
-                               blobmsg_add_json_element(blob, NULL, c->obj);
+                       if (json_object_get_type(c->obj) == json_type_object &&
+                           blobmsg_add_object(blob, c->obj))
                                rv = UBUS_STATUS_OK;
-                       }
 
                        json_object_put(c->obj);
                }
@@ -327,7 +324,9 @@ rpc_plugin_parse_exec(const char *name, int fd)
        if (!obj_type)
                return NULL;
 
-       asprintf((char **)&obj_type->name, "luci-rpc-plugin-%s", name);
+       if (asprintf((char **)&obj_type->name, "luci-rpc-plugin-%s", name) < 0)
+               return NULL;
+
        obj_type->methods = methods;
        obj_type->n_methods = n_method;