Update nameserver host routes with DNS manual settings
authorSamuel Ortiz <sameo@linux.intel.com>
Mon, 12 Jul 2010 18:37:32 +0000 (20:37 +0200)
committerSamuel Ortiz <sameo@linux.intel.com>
Mon, 12 Jul 2010 18:44:32 +0000 (20:44 +0200)
src/service.c

index 057b2da..bf2400a 100644 (file)
@@ -1232,6 +1232,8 @@ static DBusMessage *set_property(DBusConnection *conn,
        } else if (g_str_equal(name, "Nameservers.Configuration") == TRUE) {
                DBusMessageIter entry;
                GString *str;
+               int index;
+               const char *gw;
 
                if (type != DBUS_TYPE_ARRAY)
                        return __connman_error_invalid_arguments(msg);
@@ -1240,6 +1242,12 @@ static DBusMessage *set_property(DBusConnection *conn,
                if (str == NULL)
                        return __connman_error_invalid_arguments(msg);
 
+               index = connman_network_get_index(service->network);
+               gw = __connman_ipconfig_get_gateway(index);
+
+               if (gw && strlen(gw))
+                       __connman_service_nameserver_del_routes(service);
+
                dbus_message_iter_recurse(&value, &entry);
 
                while (dbus_message_iter_get_arg_type(&entry) == DBUS_TYPE_STRING) {
@@ -1261,6 +1269,9 @@ static DBusMessage *set_property(DBusConnection *conn,
 
                g_string_free(str, TRUE);
 
+               if (gw && strlen(gw))
+                       __connman_service_nameserver_add_routes(service, gw);
+
                update_nameservers(service);
                dns_configuration_changed(service);