summaryrefslogtreecommitdiff
path: root/src/resolver.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2008-12-13 16:01:18 +0100
committerMarcel Holtmann <marcel@holtmann.org>2008-12-13 16:01:18 +0100
commit2f09e0d729845dd47373c9c7e70b8aad566ebf14 (patch)
tree754c038c4a516d4aaf799265582ad00c55c6aa8a /src/resolver.c
parent16d4c499a52e8e8116015be66c86e15bb82f96be (diff)
downloadconnman-2f09e0d729845dd47373c9c7e70b8aad566ebf14.tar.gz
connman-2f09e0d729845dd47373c9c7e70b8aad566ebf14.tar.bz2
connman-2f09e0d729845dd47373c9c7e70b8aad566ebf14.zip
Add support for sorting resolvers by priority
Diffstat (limited to 'src/resolver.c')
-rw-r--r--src/resolver.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/resolver.c b/src/resolver.c
index 929fd2e5..a8132361 100644
--- a/src/resolver.c
+++ b/src/resolver.c
@@ -27,6 +27,14 @@
static GSList *resolver_list = NULL;
+static gint compare_priority(gconstpointer a, gconstpointer b)
+{
+ const struct connman_resolver *resolver1 = a;
+ const struct connman_resolver *resolver2 = b;
+
+ return resolver2->priority - resolver1->priority;
+}
+
/**
* connman_resolver_register:
* @resolver: resolver module
@@ -39,7 +47,8 @@ int connman_resolver_register(struct connman_resolver *resolver)
{
DBG("resolver %p name %s", resolver, resolver->name);
- resolver_list = g_slist_append(resolver_list, resolver);
+ resolver_list = g_slist_insert_sorted(resolver_list, resolver,
+ compare_priority);
return 0;
}