summaryrefslogtreecommitdiff
path: root/src/resolver.c
diff options
context:
space:
mode:
authorPatrik Flykt <patrik.flykt@linux.intel.com>2012-05-24 16:24:57 +0300
committerPatrik Flykt <patrik.flykt@linux.intel.com>2012-05-28 17:00:38 +0300
commit1f86c8a20907ad7c955150c793b853a6b03075be (patch)
tree2338433458f7d73e4dab0ce6b3b0e3cfe54a6c00 /src/resolver.c
parent3ba2d070a7349a0f35e74be9eb995d43db5e7a7c (diff)
downloadconnman-1f86c8a20907ad7c955150c793b853a6b03075be.tar.gz
connman-1f86c8a20907ad7c955150c793b853a6b03075be.tar.bz2
connman-1f86c8a20907ad7c955150c793b853a6b03075be.zip
resolver: Simplify code to return if a resolver entry exists
Diffstat (limited to 'src/resolver.c')
-rw-r--r--src/resolver.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/src/resolver.c b/src/resolver.c
index 4780ac12..3ce74c32 100644
--- a/src/resolver.c
+++ b/src/resolver.c
@@ -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);
}