---
 src/service.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/service.c b/src/service.c
index 09c2c75..40c9382 100644
--- a/src/service.c
+++ b/src/service.c
@@ -1130,8 +1130,9 @@ int __connman_service_nameserver_remove(struct 
connman_service *service,
                                const char *nameserver, bool is_auto)
 {
        char **servers, **nameservers;
+       char *servers_remove[2] = {(char *) nameserver, NULL};
        bool found = false;
-       int len, i, j;
+       int len, i, j, index;
 
        DBG("service %p nameserver %s auto %d", service, nameserver, is_auto);
 
@@ -1159,12 +1160,9 @@ int __connman_service_nameserver_remove(struct 
connman_service *service,
 
        if (len == 1) {
                g_strfreev(nameservers);
-               if (is_auto)
-                       service->nameservers_auto = NULL;
-               else
-                       service->nameservers = NULL;
+               nameservers = NULL;
 
-               return 0;
+               goto remove;
        }
 
        servers = g_try_new0(char *, len);
@@ -1184,6 +1182,10 @@ int __connman_service_nameserver_remove(struct 
connman_service *service,
        g_strfreev(nameservers);
        nameservers = servers;
 
+remove:
+       index = __connman_service_get_index(service);
+       remove_nameservers(service, index, servers_remove);
+
        if (is_auto) {
                service->nameservers_auto = nameservers;
        } else {
-- 
1.9.1

_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman

Reply via email to