summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSung-jae Park <nicesj.park@samsung.com>2014-11-14 15:15:44 +0900
committerSung-jae Park <nicesj.park@samsung.com>2014-11-14 15:15:44 +0900
commit31ebcd6382a4fb68fc1a9fd78f085e561b95e26b (patch)
treeac8bdea5a5021239fc62edb030336eaa59997ad3
parent00eaf55e29f2cec97747fcd9a880f3e472af6699 (diff)
parentea24f2330cf5b494d97f3739ab2df523f5aa1464 (diff)
downloadwidget-service-31ebcd6382a4fb68fc1a9fd78f085e561b95e26b.tar.gz
widget-service-31ebcd6382a4fb68fc1a9fd78f085e561b95e26b.tar.bz2
widget-service-31ebcd6382a4fb68fc1a9fd78f085e561b95e26b.zip
Merge branch 'devel/home/master' of ssh://slp-info.sec.samsung.net:29418/magnolia/apps/livebox/livebox-service into tizen_2.3
-rw-r--r--src/dynamicbox_service.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/src/dynamicbox_service.c b/src/dynamicbox_service.c
index 3787042..b53010f 100644
--- a/src/dynamicbox_service.c
+++ b/src/dynamicbox_service.c
@@ -47,6 +47,7 @@
#define SAMSUNG_PREFIX "com.samsung."
#define DEFAULT_TIMEOUT 2.0
#define RESOURCE_PATH "/shared/res/"
+#define LIBEXEC_PATH "/shared/libexec/"
static struct supported_size_list SIZE_LIST[DBOX_NR_OF_SIZE_LIST] = {
{ 175, 175 }, /*!< 1x1 */
@@ -1437,7 +1438,7 @@ out:
return ret;
}
-static char *convert_to_abspath(const char *appid, const char *tmp, int *tmp_len)
+static char *convert_to_abspath(const char *appid, const char *tmp, const char *mid_path, int *tmp_len)
{
pkgmgrinfo_pkginfo_h handle;
const char *path;
@@ -1461,14 +1462,14 @@ static char *convert_to_abspath(const char *appid, const char *tmp, int *tmp_len
goto out;
}
- abspath_len = strlen(tmp) + strlen(path) + strlen(RESOURCE_PATH) + 1;
+ abspath_len = strlen(tmp) + strlen(path) + strlen(mid_path) + 1;
abspath = malloc(abspath_len);
if (!abspath) {
ErrPrint("malloc: %s\n", strerror(errno));
goto out;
}
- if (snprintf(abspath, abspath_len, "%s" RESOURCE_PATH "%s", path, tmp) < 0) {
+ if (snprintf(abspath, abspath_len, "%s%s%s", path, mid_path, tmp) < 0) {
ErrPrint("snprintf: %s\n", strerror(errno));
free(abspath);
abspath = NULL;
@@ -1570,7 +1571,7 @@ EAPI char *dynamicbox_service_preview(const char *pkgid, int size_type)
}
appid = get_appid(handle, pkgid);
- abspath = convert_to_abspath(appid, tmp, &tmp_len);
+ abspath = convert_to_abspath(appid, tmp, RESOURCE_PATH, &tmp_len);
free(appid);
if (!abspath) {
abspath = strdup(tmp);
@@ -1692,7 +1693,7 @@ EAPI char *dynamicbox_service_i18n_icon(const char *pkgid, const char *lang)
}
appid = get_appid(handle, pkgid);
- ret_icon = convert_to_abspath(appid, icon, NULL);
+ ret_icon = convert_to_abspath(appid, icon, RESOURCE_PATH, NULL);
free(appid);
if (ret_icon) {
free(icon);
@@ -2036,7 +2037,10 @@ EAPI char *dynamicbox_service_libexec(const char *pkgid)
goto out;
}
- libexec = strdup(path);
+ libexec = convert_to_abspath(appid, path, LIBEXEC_PATH, NULL);
+ if (!libexec) {
+ libexec = strdup(path);
+ }
if (!libexec) {
ErrPrint("Heap: %s\n", strerror(errno));
sqlite3_reset(stmt);
@@ -2447,7 +2451,10 @@ EAPI char *dynamicbox_service_dbox_script_path(const char *pkgid)
goto out;
}
- path = strdup(dbox_src);
+ path = convert_to_abspath(appid, dbox_src, RESOURCE_PATH, NULL);
+ if (!path) {
+ path = strdup(dbox_src);
+ }
if (!path) {
ErrPrint("Heap: %s\n", strerror(errno));
sqlite3_reset(stmt);
@@ -2580,7 +2587,10 @@ EAPI char *dynamicbox_service_gbar_script_path(const char *pkgid)
goto out;
}
- path = strdup(gbar_src);
+ path = convert_to_abspath(appid, gbar_src, RESOURCE_PATH, NULL);
+ if (!path) {
+ path = strdup(gbar_src);
+ }
if (!path) {
ErrPrint("Heap: %s\n", strerror(errno));
sqlite3_reset(stmt);