Improve use of systemd's states
[src/app-framework-main.git] / src / afm-binding.c
index 7716dec..1771520 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2019 "IoT.bzh"
+ * Copyright (C) 2015-2020 "IoT.bzh"
  * Author José Bollo <jose.bollo@iot.bzh>
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -69,43 +69,43 @@ static const char _update_[]    = "update";
 static const struct afb_auth
        auth_perm_widget = {
                .type = afb_auth_Permission,
-               .text = "urn:AGL:permission:afm:system:widget"
+               .text = FWK_PREFIX"permission:afm:system:widget"
        },
        auth_perm_widget_install = {
                .type = afb_auth_Permission,
-               .text = "urn:AGL:permission:afm:system:widget:install"
+               .text = FWK_PREFIX"permission:afm:system:widget:install"
        },
        auth_perm_widget_uninstall = {
                .type = afb_auth_Permission,
-               .text = "urn:AGL:permission:afm:system:widget:uninstall"
+               .text = FWK_PREFIX"permission:afm:system:widget:uninstall"
        },
        auth_perm_widget_preinstall = {
                .type = afb_auth_Permission,
-               .text = "urn:AGL:permission:afm:system:widget:preinstall"
+               .text = FWK_PREFIX"permission:afm:system:widget:preinstall"
        },
        auth_perm_widget_detail = {
                .type = afb_auth_Permission,
-               .text = "urn:AGL:permission:afm:system:widget:detail"
+               .text = FWK_PREFIX"permission:afm:system:widget:detail"
        },
        auth_perm_widget_start = {
                .type = afb_auth_Permission,
-               .text = "urn:AGL:permission:afm:system:widget:start"
+               .text = FWK_PREFIX"permission:afm:system:widget:start"
        },
        auth_perm_widget_view_all = {
                .type = afb_auth_Permission,
-               .text = "urn:AGL:permission:afm:system:widget:view-all"
+               .text = FWK_PREFIX"permission:afm:system:widget:view-all"
        },
        auth_perm_runner = {
                .type = afb_auth_Permission,
-               .text = "urn:AGL:permission:afm:system:runner"
+               .text = FWK_PREFIX"permission:afm:system:runner"
        },
        auth_perm_runner_state = {
                .type = afb_auth_Permission,
-               .text = "urn:AGL:permission:afm:system:runner:state"
+               .text = FWK_PREFIX"permission:afm:system:runner:state"
        },
        auth_perm_runner_kill = {
                .type = afb_auth_Permission,
-               .text = "urn:AGL:permission:afm:system:runner:kill"
+               .text = FWK_PREFIX"permission:afm:system:runner:kill"
        },
 
        auth_install = {
@@ -402,7 +402,7 @@ static void start(afb_req_t req)
 
        /* launch the application */
        runid = afm_urun_start(appli, afb_req_get_uid(req));
-       if (runid <= 0) {
+       if (runid < 0) {
                cant_start(req);
                return;
        }
@@ -412,7 +412,8 @@ static void start(afb_req_t req)
 #if 0
        wrap_json_pack(&resp, "{si}", _runid_, runid);
 #else
-       wrap_json_pack(&resp, "i", runid);
+       if (runid)
+               wrap_json_pack(&resp, "i", runid);
 #endif
        afb_req_success(req, resp, NULL);
 }
@@ -439,13 +440,13 @@ static void once(afb_req_t req)
 
        /* launch the application */
        runid = afm_urun_once(appli, afb_req_get_uid(req));
-       if (runid <= 0) {
+       if (runid < 0) {
                cant_start(req);
                return;
        }
 
        /* returns the state */
-       resp = afm_urun_state(afudb, runid, afb_req_get_uid(req));
+       resp = runid ? afm_urun_state(afudb, runid, afb_req_get_uid(req)) : NULL;
        afb_req_success(req, resp, NULL);
 }