summaryrefslogtreecommitdiff
path: root/src/resolver.c
diff options
context:
space:
mode:
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;
}