Merge "Fix svace 'UNREACHABLE_CODE.NO_PATH' warnings" into tizen
[platform/upstream/connman.git] / vpn / vpn-config.c
index 293c64e..2fe0307 100755 (executable)
@@ -203,7 +203,11 @@ static int load_provider(GKeyFile *keyfile, const char *group,
                                struct vpn_config *config, enum what action)
 {
        struct vpn_config_provider *config_provider;
+#if !defined TIZEN_EXT
        const char *ident, *host, *domain;
+#else
+       const char *ident, *host, *domain, *name;
+#endif
        int err;
 
        /* Strip off "provider_" prefix */
@@ -229,8 +233,14 @@ static int load_provider(GKeyFile *keyfile, const char *group,
 
        host = get_string(config_provider, "Host");
        domain = get_string(config_provider, "Domain");
+#if !defined TIZEN_EXT
        if (host && domain) {
                char *id = __vpn_provider_create_identifier(host, domain);
+#else
+       name = get_string(config_provider, "Name");
+       if (host && domain && name) {
+               char *id = __vpn_provider_create_identifier(host, domain, name);
+#endif
 
                struct vpn_provider *provider;
                provider = __vpn_provider_lookup(id);
@@ -252,7 +262,11 @@ static int load_provider(GKeyFile *keyfile, const char *group,
 
                DBG("provider identifier %s", id);
        } else {
+#if !defined TIZEN_EXT
                DBG("invalid values host %s domain %s", host, domain);
+#else
+               DBG("invalid values host %s domain %s name %s", host, domain, name);
+#endif
                err = -EINVAL;
                goto err;
        }
@@ -261,9 +275,6 @@ static int load_provider(GKeyFile *keyfile, const char *group,
        config_provider->config_entry = g_strdup_printf("provider_%s",
                                                config_provider->ident);
 
-       g_hash_table_insert(config->provider_table,
-                               config_provider->ident, config_provider);
-
        err = __vpn_provider_create_from_config(
                                        config_provider->setting_strings,
                                        config_provider->config_ident,
@@ -274,6 +285,10 @@ static int load_provider(GKeyFile *keyfile, const char *group,
                goto err;
        }
 
+       g_hash_table_insert(config->provider_table, config_provider->ident,
+                               config_provider);
+
+
        connman_info("Added provider configuration %s",
                                                config_provider->ident);
        return 0;
@@ -484,12 +499,12 @@ static void config_notify_handler(struct inotify_event *event,
        if (event->mask & IN_CREATE)
                return;
 
-       if (event->mask & IN_DELETE) {
+       if (event->mask & (IN_DELETE | IN_MOVED_FROM)) {
                g_hash_table_remove(config_table, ident);
                return;
        }
 
-       if (event->mask & IN_MODIFY) {
+       if (event->mask & (IN_MODIFY | IN_MOVED_TO)) {
                struct vpn_config *config;
                char *path = get_dir();