vpn: Update domain name when received from vpnd
authorJukka Rissanen <jukka.rissanen@linux.intel.com>
Thu, 28 Mar 2013 12:55:07 +0000 (14:55 +0200)
committerPatrik Flykt <patrik.flykt@linux.intel.com>
Wed, 3 Apr 2013 08:45:38 +0000 (11:45 +0300)
plugins/vpn.c

index d33d7c1..7a768c8 100644 (file)
@@ -610,6 +610,7 @@ static void add_connection(const char *path, DBusMessageIter *properties,
                        data->host = g_strdup(str);
                } else if (g_str_equal(key, "Domain") == TRUE) {
                        dbus_message_iter_get_basic(&value, &str);
+                       g_free(data->domain);
                        data->domain = g_strdup(str);
                } else if (g_str_equal(key, "Nameservers") == TRUE) {
                        extract_nameservers(&value, data);
@@ -647,6 +648,10 @@ static void add_connection(const char *path, DBusMessageIter *properties,
                connman_provider_set_nameservers(data->provider,
                                                data->nameservers);
 
+       if (data->domain != NULL)
+               connman_provider_set_domain(data->provider,
+                                               data->domain);
+
        if (data->connect_pending == TRUE)
                connect_provider(data, data->cb_data);
 
@@ -1764,6 +1769,11 @@ static gboolean property_changed(DBusConnection *conn,
                                                data->nameservers != NULL)
                        connman_provider_set_nameservers(data->provider,
                                                        data->nameservers);
+       } else if (g_str_equal(key, "Domain") == TRUE) {
+               dbus_message_iter_get_basic(&value, &str);
+               g_free(data->domain);
+               data->domain = g_strdup(str);
+               connman_provider_set_domain(data->provider, data->domain);
        }
 
        if (ip_set == TRUE && err == 0) {