From: Elena Tebesoi <elena.tebe...@gmail.com>

This patch allows nameservers to be appended for a network.
For example, IPv6 nameservers can be appended to the IPv4
nameservers.
---
 include/network.h |    2 +-
 plugins/dundee.c  |    4 +++-
 plugins/ofono.c   |    3 ++-
 src/network.c     |    5 +++--
 4 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/include/network.h b/include/network.h
index 12b0621..97ca03e 100644
--- a/include/network.h
+++ b/include/network.h
@@ -112,7 +112,7 @@ void connman_network_set_ipv6_method(struct connman_network 
*network,
 int connman_network_set_ipaddress(struct connman_network *network,
                                struct connman_ipaddress *ipaddress);
 int connman_network_set_nameservers(struct connman_network *network,
-                               const char *nameservers);
+                               const char *nameservers, connman_bool_t append);
 int connman_network_set_domain(struct connman_network *network,
                                     const char *domain);
 int connman_network_set_name(struct connman_network *network,
diff --git a/plugins/dundee.c b/plugins/dundee.c
index 045f639..eacc793 100644
--- a/plugins/dundee.c
+++ b/plugins/dundee.c
@@ -194,7 +194,9 @@ static void set_connected(struct dundee_data *info)
        connman_network_set_ipv4_method(info->network,
                                        CONNMAN_IPCONFIG_METHOD_FIXED);
        connman_network_set_ipaddress(info->network, info->address);
-       connman_network_set_nameservers(info->network, info->nameservers);
+       connman_network_set_nameservers(info->network,
+                                       info->nameservers,
+                                       FALSE);
 
        connman_network_set_connected(info->network, TRUE);
 }
diff --git a/plugins/ofono.c b/plugins/ofono.c
index ae419be..4fb5747 100644
--- a/plugins/ofono.c
+++ b/plugins/ofono.c
@@ -275,7 +275,8 @@ static void set_connected(struct modem_data *modem)
                connman_network_set_ipaddress(modem->network,
                                                modem->context->ipv4_address);
                connman_network_set_nameservers(modem->network,
-                                       modem->context->ipv4_nameservers);
+                                       modem->context->ipv4_nameservers,
+                                       FALSE);
                setip = TRUE;
                break;
 
diff --git a/src/network.c b/src/network.c
index 6ecb35b..95b4e7b 100644
--- a/src/network.c
+++ b/src/network.c
@@ -1761,7 +1761,7 @@ int connman_network_set_ipaddress(struct connman_network 
*network,
 }
 
 int connman_network_set_nameservers(struct connman_network *network,
-                               const char *nameservers)
+                               const char *nameservers, connman_bool_t append)
 {
        struct connman_service *service;
        char **nameservers_array;
@@ -1773,7 +1773,8 @@ int connman_network_set_nameservers(struct 
connman_network *network,
        if (service == NULL)
                return -EINVAL;
 
-       __connman_service_nameserver_clear(service);
+       if (append == FALSE)
+               __connman_service_nameserver_clear(service);
 
        if (nameservers == NULL)
                return 0;
-- 
1.7.5.4

_______________________________________________
connman mailing list
connman@connman.net
http://lists.connman.net/listinfo/connman

Reply via email to