resolver: Simplify code to return if a resolver entry exists
authorPatrik Flykt <patrik.flykt@linux.intel.com>
Thu, 24 May 2012 13:24:57 +0000 (16:24 +0300)
committerPatrik Flykt <patrik.flykt@linux.intel.com>
Mon, 28 May 2012 14:00:38 +0000 (17:00 +0300)
src/resolver.c

index 4780ac1..3ce74c3 100644 (file)
@@ -362,7 +362,7 @@ static int append_resolver(const char *interface, const char *domain,
 int connman_resolver_append(const char *interface, const char *domain,
                                                const char *server)
 {
-       GSList *list, *matches = NULL;
+       GSList *list;
 
        DBG("interface %s domain %s server %s", interface, domain, server);
 
@@ -372,18 +372,15 @@ int connman_resolver_append(const char *interface, const char *domain,
        for (list = entry_list; list; list = list->next) {
                struct entry_data *entry = list->data;
 
-               if (entry->timeout > 0 ||
-                               g_strcmp0(entry->interface, interface) != 0 ||
-                               g_strcmp0(entry->domain, domain) != 0 ||
-                               g_strcmp0(entry->server, server) != 0)
+               if (entry->timeout > 0)
                        continue;
 
-               matches = g_slist_append(matches, entry);
+               if (g_strcmp0(entry->interface, interface) == 0 &&
+                               g_strcmp0(entry->domain, domain) == 0 &&
+                               g_strcmp0(entry->server, server) == 0)
+                       return -EEXIST;
        }
 
-       if (matches != NULL)
-               remove_entries(matches);
-
        return append_resolver(interface, domain, server, 0, 0);
 }