* @short_description: Functions for registering resolver modules
*/
+#define CONNMAN_RESOLVER_PRIORITY_LOW -100
+#define CONNMAN_RESOLVER_PRIORITY_DEFAULT 0
+#define CONNMAN_RESOLVER_PRIORITY_HIGH 100
+
struct connman_resolver {
const char *name;
+ int priority;
};
extern int connman_resolver_register(struct connman_resolver *resolver);
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
{
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;
}