X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafm-binding.c;h=1ff0eb2440a9c641dddfc9dd87e7ece3f29fde3c;hb=1867d049f8a3b181bb920fef6d904cfa67de06f0;hp=b111f09afd9b66f39d42d829014d559e24d66709;hpb=ecb483c282d48a6236c2aafd3beaa355e5a75e73;p=src%2Fapp-framework-main.git diff --git a/src/afm-binding.c b/src/afm-binding.c index b111f09..1ff0eb2 100644 --- a/src/afm-binding.c +++ b/src/afm-binding.c @@ -104,7 +104,7 @@ static int onrunid(struct afb_req req, const char *method, int *runid) json = afb_req_json(req); if (wrap_json_unpack(json, "s", runid) - || wrap_json_unpack(json, "{ss}", "runid", runid)) { + && wrap_json_unpack(json, "{ss}", "runid", runid)) { INFO("bad request method %s: %s", method, json_object_to_json_string(json)); bad_request(req); @@ -143,7 +143,7 @@ static void runnables(struct afb_req req) { struct json_object *resp; INFO("method runnables called"); - resp = afm_udb_applications_public(afudb); + resp = afm_udb_applications_public(afudb, afb_req_get_uid(req)); afb_req_success(req, resp, NULL); } @@ -158,14 +158,14 @@ static void detail(struct afb_req req) /* scan the request */ json = afb_req_json(req); if (wrap_json_unpack(json, "s", &appid) - || wrap_json_unpack(json, "{ss}", _id_, &appid)) { + && wrap_json_unpack(json, "{ss}", _id_, &appid)) { bad_request(req); return; } /* wants details for appid */ INFO("method detail called for %s", appid); - resp = afm_udb_get_application_public(afudb, appid); + resp = afm_udb_get_application_public(afudb, appid, afb_req_get_uid(req)); if (resp) afb_req_success(req, resp, NULL); else @@ -184,21 +184,21 @@ static void start(struct afb_req req) /* scan the request */ json = afb_req_json(req); if (wrap_json_unpack(json, "s", &appid) - || wrap_json_unpack(json, "{ss}", _id_, &appid)) { + && wrap_json_unpack(json, "{ss}", _id_, &appid)) { bad_request(req); return; } /* get the application */ INFO("method start called for %s", appid); - appli = afm_udb_get_application_private(afudb, appid); + appli = afm_udb_get_application_private(afudb, appid, afb_req_get_uid(req)); if (appli == NULL) { not_found(req); return; } /* launch the application */ - runid = afm_urun_start(appli); + runid = afm_urun_start(appli, afb_req_get_uid(req)); if (runid <= 0) { cant_start(req); return; @@ -206,7 +206,11 @@ static void start(struct afb_req req) /* returns */ resp = NULL; +#if 0 wrap_json_pack(&resp, "{si}", _runid_, runid); +#else + wrap_json_pack(&resp, "i", runid); +#endif afb_req_success(req, resp, NULL); } @@ -222,28 +226,28 @@ static void once(struct afb_req req) /* scan the request */ json = afb_req_json(req); if (wrap_json_unpack(json, "s", &appid) - || wrap_json_unpack(json, "{ss}", _id_, &appid)) { + && wrap_json_unpack(json, "{ss}", _id_, &appid)) { bad_request(req); return; } /* get the application */ INFO("method once called for %s", appid); - appli = afm_udb_get_application_private(afudb, appid); + appli = afm_udb_get_application_private(afudb, appid, afb_req_get_uid(req)); if (appli == NULL) { not_found(req); return; } /* launch the application */ - runid = afm_urun_once(appli); + runid = afm_urun_once(appli, afb_req_get_uid(req)); if (runid <= 0) { cant_start(req); return; } /* returns the state */ - resp = afm_urun_state(afudb, runid); + resp = afm_urun_state(afudb, runid, afb_req_get_uid(req)); afb_req_success(req, resp, NULL); } @@ -254,7 +258,7 @@ static void pause(struct afb_req req) { int runid, status; if (onrunid(req, "pause", &runid)) { - status = afm_urun_pause(runid); + status = afm_urun_pause(runid, afb_req_get_uid(req)); reply_status(req, status, _not_found_); } } @@ -266,7 +270,7 @@ static void resume(struct afb_req req) { int runid, status; if (onrunid(req, "resume", &runid)) { - status = afm_urun_resume(runid); + status = afm_urun_resume(runid, afb_req_get_uid(req)); reply_status(req, status, _not_found_); } } @@ -278,7 +282,7 @@ static void terminate(struct afb_req req) { int runid, status; if (onrunid(req, "terminate", &runid)) { - status = afm_urun_terminate(runid); + status = afm_urun_terminate(runid, afb_req_get_uid(req)); reply_status(req, status, _not_found_); } } @@ -290,7 +294,7 @@ static void runners(struct afb_req req) { struct json_object *resp; INFO("method runners called"); - resp = afm_urun_list(afudb); + resp = afm_urun_list(afudb, afb_req_get_uid(req)); afb_req_success(req, resp, NULL); } @@ -302,56 +306,11 @@ static void state(struct afb_req req) int runid; struct json_object *resp; if (onrunid(req, "state", &runid)) { - resp = afm_urun_state(afudb, runid); + resp = afm_urun_state(afudb, runid, afb_req_get_uid(req)); reply(req, resp, _not_found_); } } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - static void install(struct afb_req req) { const char *wgtfile; @@ -370,8 +329,8 @@ static void install(struct afb_req req) /* scan the request */ json = afb_req_json(req); if (wrap_json_unpack(json, "s", &wgtfile) - || wrap_json_unpack(json, "{ss s?s s?b s?b}", - "widget", &wgtfile, + && wrap_json_unpack(json, "{ss s?s s?b s?b}", + "wgt", &wgtfile, "root", &root, "force", &force, "reload", &reload)) { @@ -383,6 +342,7 @@ static void install(struct afb_req req) if (ifo == NULL) afb_req_fail_f(req, "failed", "installation failed: %m"); else { + afm_udb_update(afudb); /* reload if needed */ if (reload) do_reloads(); @@ -410,7 +370,7 @@ static void uninstall(struct afb_req req) /* scan the request */ json = afb_req_json(req); if (wrap_json_unpack(json, "s", &idaver) - || wrap_json_unpack(json, "{ss s?s}", + && wrap_json_unpack(json, "{ss s?s}", _id_, &idaver, "root", &root)) { return bad_request(req); @@ -421,6 +381,7 @@ static void uninstall(struct afb_req req) if (rc) afb_req_fail_f(req, "failed", "uninstallation failed: %m"); else { + afm_udb_update(afudb); afb_req_success(req, NULL, NULL); application_list_changed(_uninstall_, idaver); } @@ -429,16 +390,12 @@ static void uninstall(struct afb_req req) static int init() { /* init database */ - afudb = afm_udb_create(1, 1, "afm-appli-"); + afudb = afm_udb_create(1, 0, "afm-appli-"); if (!afudb) { ERROR("afm_udb_create failed"); return -1; } - /* set the systemd's buses */ - systemd_set_bus(0, afb_daemon_get_system_bus()); - systemd_set_bus(1, afb_daemon_get_user_bus()); - /* create TRUE */ json_true = json_object_new_boolean(1);