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:
/* 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)
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:
/* 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()
}
/* 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;