From 5702348938d6a6cf680ec503cc02a532f24c9910 Mon Sep 17 00:00:00 2001 From: Daniel Wagner Date: Fri, 10 Aug 2012 11:59:04 +0200 Subject: ofono: Set IPv6 nameservers --- plugins/ofono.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'plugins') diff --git a/plugins/ofono.c b/plugins/ofono.c index 87bb956f..2122b85d 100644 --- a/plugins/ofono.c +++ b/plugins/ofono.c @@ -259,6 +259,7 @@ static void set_connected(struct modem_data *modem) struct connman_service *service; connman_bool_t setip = FALSE; enum connman_ipconfig_method method; + char *nameservers; int index; DBG("%s", modem->path); @@ -289,8 +290,6 @@ static void set_connected(struct modem_data *modem) if (method == CONNMAN_IPCONFIG_METHOD_FIXED) { connman_network_set_ipaddress(modem->network, modem->context->ipv4_address); - connman_network_set_nameservers(modem->network, - modem->context->ipv4_nameservers); } method = modem->context->ipv6_method; @@ -302,6 +301,22 @@ static void set_connected(struct modem_data *modem) setip = TRUE; } + /* Set the nameservers */ + if (modem->context->ipv4_nameservers != NULL && + modem->context->ipv6_nameservers != NULL) { + nameservers = g_strdup_printf("%s %s", + modem->context->ipv4_nameservers, + modem->context->ipv6_nameservers); + connman_network_set_nameservers(modem->network, nameservers); + g_free(nameservers); + } else if (modem->context->ipv4_nameservers != NULL) { + connman_network_set_nameservers(modem->network, + modem->context->ipv4_nameservers); + } else if (modem->context->ipv6_nameservers != NULL) { + connman_network_set_nameservers(modem->network, + modem->context->ipv6_nameservers); + } + if (setip == TRUE) connman_network_set_connected(modem->network, TRUE); } -- cgit v1.2.3