summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHwankyu Jhun <h.jhun@samsung.com>2019-01-17 13:41:27 +0900
committerHwankyu Jhun <h.jhun@samsung.com>2019-01-17 13:41:27 +0900
commite059bb5362d51afb84eb4ceb9f9a0d109938d90e (patch)
tree496c575fb0f956d95b1ded047574a683ea75b8c5
parentb633656811ffd4000232be633a070ca761867ec4 (diff)
downloadlaunchpad-e059bb5362d51afb84eb4ceb9f9a0d109938d90e.tar.gz
launchpad-e059bb5362d51afb84eb4ceb9f9a0d109938d90e.tar.bz2
launchpad-e059bb5362d51afb84eb4ceb9f9a0d109938d90e.zip
Prepare ID file
Before executing an application, the child process creates the ID file. If's for Application Manager. Change-Id: I4e561b80071c12fb786ca89cab8a968d25e159ff Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
-rw-r--r--inc/launchpad_common.h1
-rwxr-xr-xsrc/launchpad.c4
-rw-r--r--src/launchpad_common.c17
-rw-r--r--src/launchpad_lib.c4
4 files changed, 26 insertions, 0 deletions
diff --git a/inc/launchpad_common.h b/inc/launchpad_common.h
index 4662d3d..4776a44 100644
--- a/inc/launchpad_common.h
+++ b/inc/launchpad_common.h
@@ -129,6 +129,7 @@ int _wait_tep_mount(bundle *b);
int _prepare_app_socket(void);
int _enable_external_pkg(bundle *b, const char *pkgid, uid_t pkg_uid);
int _verify_proc_caps(void);
+int _prepare_id_file(void);
#endif /* __LAUNCHPAD_COMMON_H__ */
diff --git a/src/launchpad.c b/src/launchpad.c
index 3b2592a..f6d5301 100755
--- a/src/launchpad.c
+++ b/src/launchpad.c
@@ -1005,6 +1005,10 @@ static int __prepare_exec(const char *appid, const char *app_path,
ret = _prepare_app_socket();
if (ret < 0)
return PAD_ERR_FAILED;
+
+ ret = _prepare_id_file();
+ if (ret < 0)
+ return PAD_ERR_FAILED;
}
return 0;
diff --git a/src/launchpad_common.c b/src/launchpad_common.c
index da3ba04..21cb409 100644
--- a/src/launchpad_common.c
+++ b/src/launchpad_common.c
@@ -1353,3 +1353,20 @@ int _verify_proc_caps(void)
return 0;
}
+
+int _prepare_id_file(void)
+{
+ char path[PATH_MAX];
+ int fd;
+
+ snprintf(path, sizeof(path), "/run/aul/apps/%u/%d/%s",
+ getuid(), getpid(), getenv("AUL_APPID"));
+ fd = open(path, O_CREAT | O_WRONLY | O_TRUNC, 0600);
+ if (fd < 0) {
+ _E("Failed to create %s. errno(%d)", path, errno);
+ return -1;
+ }
+ close(fd);
+
+ return 0;
+}
diff --git a/src/launchpad_lib.c b/src/launchpad_lib.c
index dd7620a..4041141 100644
--- a/src/launchpad_lib.c
+++ b/src/launchpad_lib.c
@@ -145,6 +145,10 @@ static int __prepare_exec(const char *appid, const char *app_path,
if (ret < 0)
return -1;
+ ret = _prepare_id_file();
+ if (ret < 0)
+ return -1;
+
return 0;
}