Add warning detection and improve
[src/app-framework-binder.git] / plugins / afm-main-plugin / afm-main-plugin.c
index 3f9de71..2aa3676 100644 (file)
@@ -38,6 +38,7 @@ static char _uninstall_[]   = "uninstall";
 static const char _mode_[]  = "mode";
 static const char _local_[] = "local";
 static const char _remote_[]= "remote";
+static const char _auto_[]  = "auto";
 static const char _uri_[]   = "uri";
 
 static struct jbus *jbus;
@@ -68,11 +69,6 @@ static struct json_object *embed(AFB_request *request, const char *tag, struct j
        return result;
 }
 
-static struct json_object *call(AFB_request *request, AFB_PostItem *item, const char *tag, struct json_object *(*fun)(AFB_request*,AFB_PostItem*))
-{
-       return embed(request, tag, fun(request, item));
-}
-
 static struct json_object *call_void(AFB_request *request, AFB_PostItem *item)
 {
        struct json_object *obj = jbus_call_sj_sync(jbus, request->api, "true");
@@ -138,7 +134,7 @@ static struct json_object *call_start(AFB_request *request, AFB_PostItem *item)
        }
        /* get the mode */
        mode = getQueryValue(request, _mode_);
-       if (mode == NULL) {
+       if (mode == NULL || !strcmp(mode, _auto_)) {
                mode = request->config->mode == AFB_MODE_REMOTE ? _remote_ : _local_;
        }
 
@@ -156,7 +152,7 @@ static struct json_object *call_start(AFB_request *request, AFB_PostItem *item)
        free(query);
 
        /* embed if needed */
-       if (json_object_get_type(resp) == json_type_string)
+       if (json_object_get_type(resp) == json_type_int)
                resp = embed(request, _runid_, resp);
        request->errcode = resp ? MHD_HTTP_OK : MHD_HTTP_FAILED_DEPENDENCY;
        return resp;