return 0;
}
+static int __dispatch_app_status_update_v2(request_h req)
+{
+ app_status_h app_status;
+ struct appinfo *ai;
+ const char *appid;
+ const char *val;
+ int status = -1;
+ bundle *b;
+ int pid;
+ int ret;
+
+ pid = _request_get_pid(req);
+ app_status = _app_status_find_v2(pid);
+ if (!app_status) {
+ _E("Failed to find app status. pid(%d)", pid);
+ _request_send_result(req, -EINVAL);
+ return -1;
+ }
+
+ b = _request_get_bundle(req);
+ if (!b) {
+ _E("Failed to get bundle");
+ _request_send_result(req, -EINVAL);
+ return -1;
+ }
+
+ val = bundle_get_val(b, AUL_K_STATUS);
+ if (!val) {
+ _E("Failed to get status");
+ _request_send_result(req, -EINVAL);
+ return -1;
+ }
+
+ if (isdigit(*val))
+ status = atoi(val);
+
+ if (status == STATUS_NORESTART) {
+ appid = _app_status_get_appid(app_status);
+ ai = _appinfo_find(_request_get_target_uid(req), appid);
+ ret = _appinfo_set_value(ai, AIT_STATUS, "norestart");
+ } else {
+ ret = _app_status_update_status(app_status, status,
+ false, true);
+ }
+
+ _request_send_result(req, ret);
+ _W("[APP_STATUS_UPDATE_V2] pid(%d), status(%d), result(%d)",
+ pid, status, ret);
+ return 0;
+}
+
static request_cmd_dispatch __dispatch_table[] = {
{
.cmd = APP_RUNNING_INFO,
.cmd = APP_CONTEXT_GET_BY_PID,
.callback = __dispatch_app_context_get_by_pid
},
+ {
+ .cmd = APP_STATUS_UPDATE_V2,
+ .callback = __dispatch_app_status_update_v2
+ },
};
static cynara_checker __cynara_checkers[] = {