summaryrefslogtreecommitdiff
path: root/src/launch.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/launch.c')
-rwxr-xr-xsrc/launch.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/launch.c b/src/launch.c
index 49794c9f..6aa64629 100755
--- a/src/launch.c
+++ b/src/launch.c
@@ -67,12 +67,24 @@ static int __send_cmd_for_uid_opt(int pid, uid_t uid, int cmd, bundle *kb, int o
return res;
}
+static int __send_cmd_noreply_for_uid_opt(int pid, uid_t uid,
+ int cmd, bundle *kb, int opt)
+{
+ int res;
+
+ res = aul_sock_send_bundle(pid, uid, cmd, kb, opt | AUL_SOCK_NOREPLY);
+ if (res < 0)
+ res = aul_error_convert(res);
+
+ return res;
+}
+
static int __send_cmd_async_for_uid_opt(int pid, uid_t uid,
- int cmd, bundle *kb, int opt)
+ int cmd, bundle *kb, int opt)
{
int res;
- res = aul_sock_send_bundle(pid, uid, cmd, kb, AUL_SOCK_NOREPLY);
+ res = aul_sock_send_bundle(pid, uid, cmd, kb, opt | AUL_SOCK_ASYNC);
if (res < 0)
res = aul_error_convert(res);
@@ -103,7 +115,7 @@ API int app_send_cmd_with_queue_for_uid(int pid, uid_t uid, int cmd, bundle *kb)
API int app_send_cmd_with_queue_noreply_for_uid(int pid, uid_t uid,
int cmd, bundle *kb)
{
- return __send_cmd_async_for_uid_opt(pid, uid, cmd, kb, AUL_SOCK_QUEUE);
+ return __send_cmd_noreply_for_uid_opt(pid, uid, cmd, kb, AUL_SOCK_QUEUE);
}
API int app_send_cmd_with_noreply(int pid, int cmd, bundle *kb)
@@ -213,6 +225,10 @@ int app_request_to_launchpad_for_uid(int cmd, const char *appid, bundle *kb, uid
ret = app_send_cmd_with_queue_noreply_for_uid(AUL_UTIL_PID,
uid, cmd, kb);
break;
+ case APP_SEND_LAUNCH_REQUEST:
+ ret = __send_cmd_async_for_uid_opt(AUL_UTIL_PID,
+ uid, cmd, kb, AUL_SOCK_QUEUE);
+ break;
default:
ret = app_send_cmd_with_queue_for_uid(AUL_UTIL_PID, uid, cmd,
kb);
@@ -229,6 +245,7 @@ int app_request_to_launchpad_for_uid(int cmd, const char *appid, bundle *kb, uid
case APP_START_ASYNC:
case WIDGET_UPDATE:
case APP_START_RES_ASYNC:
+ case APP_SEND_LAUNCH_REQUEST:
b = bundle_dup(kb);
ret = aul_launch_local(b);
break;