From b65c51786893ec9defb6c8fdcd82e117ce0d91e4 Mon Sep 17 00:00:00 2001 From: Samuel Ortiz Date: Mon, 12 Jul 2010 20:37:32 +0200 Subject: [PATCH] Update nameserver host routes with DNS manual settings --- src/service.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/service.c b/src/service.c index 057b2da..bf2400a 100644 --- a/src/service.c +++ b/src/service.c @@ -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); -- 2.7.4