summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <zmike@osg.samsung.com>2017-11-03 14:01:40 -0400
committerMike Blumenkrantz <zmike@osg.samsung.com>2017-11-03 13:51:12 -0400
commit2e81e5f8de936037f0ec9925feb67dce08fa3b10 (patch)
treef9a1aa69e769cb3fc5c1f26c3dff2d3467609bc1
parentb8f8c42aec9391d23a4fb78ec205843b213eaa93 (diff)
downloadenlightenment-2e81e5f8de936037f0ec9925feb67dce08fa3b10.tar.gz
disable sandbox gadgets if loader cannot be found on startup
-rw-r--r--src/bin/e_gadget_runner.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/bin/e_gadget_runner.c b/src/bin/e_gadget_runner.c
index 965bc3d35d..dfe2c0ee4c 100644
--- a/src/bin/e_gadget_runner.c
+++ b/src/bin/e_gadget_runner.c
@@ -42,6 +42,8 @@ typedef struct RConfig
Evas_Object *config_dialog;
} RConfig;
+static Eina_Bool runner_enabled;
+
static E_Config_DD *conf_edd = NULL;
static E_Config_DD *conf_item_edd = NULL;
@@ -861,6 +863,11 @@ list_error_cb(void *d EINA_UNUSED, Eio_File *ls EINA_UNUSED, int error EINA_UNUS
EINTERN void
e_gadget_runner_init(void)
{
+ char buf[PATH_MAX];
+
+ snprintf(buf, sizeof(buf), "%s/enlightenment/gadgets/%s/loader.so", e_prefix_lib_get(), MODULE_ARCH);
+ if (!ecore_file_exists(buf)) return;
+ runner_enabled = EINA_TRUE;
conf_item_edd = E_CONFIG_DD_NEW("Config_Item", Config_Item);
#undef T
#undef D
@@ -882,8 +889,6 @@ e_gadget_runner_init(void)
e_gadget_type_add("runner", runner_create, runner_wizard);
{
- char buf[PATH_MAX];
-
snprintf(buf, sizeof(buf), "%s/enlightenment/gadgets/%s", e_prefix_lib_get(), MODULE_ARCH);
gadget_monitor = eio_monitor_add(buf);
gadget_lister = eio_file_direct_ls(buf, list_filter_cb, list_main_cb, list_done_cb, list_error_cb, NULL);
@@ -895,8 +900,6 @@ e_gadget_runner_init(void)
sandbox_gadgets = eina_hash_string_superfast_new((Eina_Free_Cb)efreet_desktop_free);
{
- char buf[PATH_MAX];
-
snprintf(buf, sizeof(buf), "/proc/%d/ns/pid", getpid());
ns_fd = open(buf, O_RDONLY);
}
@@ -905,6 +908,7 @@ e_gadget_runner_init(void)
EINTERN void
e_gadget_runner_shutdown(void)
{
+ if (!runner_enabled) return;
e_gadget_type_del("runner");
e_gadget_external_type_del("runner_sandbox", NULL);
@@ -936,7 +940,8 @@ e_gadget_runner_shutdown(void)
}
EINTERN void
-runner_save(void)
+e_gadget_runner_save(void)
{
+ if (!runner_enabled) return;
e_config_domain_save("e_gadget_runner", conf_edd, rconfig);
}