utils-jbus: improved tokenizing and creation
[src/app-framework-main.git] / src / afm-system-daemon.c
index ab87c97..1152281 100644 (file)
@@ -82,10 +82,10 @@ static void on_install(struct jreq *jreq, struct json_object *req)
                force = 0;
                break;
        case json_type_object:
-               wgtfile = j_get_string(req, "wgt", NULL);
+               wgtfile = j_string_at(req, "wgt", NULL);
                if (wgtfile != NULL) {
-                       root = j_get_string(req, "root", rootdir);
-                       force = j_get_boolean(req, "force", 0);
+                       root = j_string_at(req, "root", rootdir);
+                       force = j_boolean_at(req, "force", 0);
                        break;
                }
        default:
@@ -95,25 +95,22 @@ static void on_install(struct jreq *jreq, struct json_object *req)
 
        /* install the widget */
        ifo = install_widget(wgtfile, root, force);
-       if (ifo == NULL) {
+       if (ifo == NULL)
                jbus_reply_error_s(jreq, "\"installation failed\"");
-               return;
-       }
+       else {
+               /* build the response */
+               resp = json_object_new_object();
+               if(!resp || !j_add_string(resp, "added", wgt_info_desc(ifo)->idaver))
+                       jbus_reply_error_s(jreq, "\"out of memory but installed!\"");
+               else {
+                       jbus_send_signal_s(jbus, "changed", "true");
+                       jbus_reply_j(jreq, resp);
+               }
 
-       /* build the response */
-       resp = json_object_new_object();
-       if(!resp || !j_add_string(resp, "added", wgt_info_desc(ifo)->idaver)) {
-               json_object_put(resp);
+               /* clean-up */
                wgt_info_unref(ifo);
-               jbus_reply_error_s(jreq, "\"out of memory but installed!\"");
-               return;
+               json_object_put(resp);
        }
-       wgt_info_unref(ifo);
-
-       /* reply and propagate event */
-       jbus_reply_j(jreq, resp);
-       jbus_send_signal_j(jbus, "changed", resp);
-       json_object_put(resp);
 }
 
 static void on_uninstall(struct jreq *jreq, struct json_object *req)
@@ -129,9 +126,9 @@ static void on_uninstall(struct jreq *jreq, struct json_object *req)
                root = rootdir;
                break;
        case json_type_object:
-               idaver = j_get_string(req, "id", NULL);
+               idaver = j_string_at(req, "id", NULL);
                if (idaver != NULL) {
-                       root = j_get_string(req, "root", rootdir);
+                       root = j_string_at(req, "root", rootdir);
                        break;
                }
        default:
@@ -141,11 +138,12 @@ static void on_uninstall(struct jreq *jreq, struct json_object *req)
 
        /* install the widget */
        rc = uninstall_widget(idaver, root);
-       if (rc) {
+       if (rc)
                jbus_reply_error_s(jreq, "\"uninstallation had error\"");
-               return;
+       else {
+               jbus_send_signal_s(jbus, "changed", "true");
+               jbus_reply_s(jreq, "true");
        }
-       jbus_reply_s(jreq, "true");
 }
 
 static int daemonize()
@@ -219,7 +217,7 @@ int main(int ac, char **av)
        }
 
        /* init service */
-       jbus = create_jbus(0, AFM_SYSTEM_DBUS_PATH);
+       jbus = create_jbus_system(AFM_SYSTEM_DBUS_PATH);
        if (!jbus) {
                ERROR("create_jbus failed");
                return 1;