summaryrefslogtreecommitdiff
path: root/src/plugin.c
diff options
context:
space:
mode:
authorMarcel Holtmann <marcel@holtmann.org>2009-02-27 08:37:46 +0100
committerMarcel Holtmann <marcel@holtmann.org>2009-02-27 08:37:46 +0100
commit2e88ef3053cf2a12115f78fcd4292266b4c98943 (patch)
tree8fa3f4e2e9d668bef18e918a85d888ed0dd7dec4 /src/plugin.c
parent4dbcc5d0cc60785775a492e8fa1c368f52af6105 (diff)
downloadconnman-2e88ef3053cf2a12115f78fcd4292266b4c98943.tar.gz
connman-2e88ef3053cf2a12115f78fcd4292266b4c98943.tar.bz2
connman-2e88ef3053cf2a12115f78fcd4292266b4c98943.zip
Add priority field to plugin description
Diffstat (limited to 'src/plugin.c')
-rw-r--r--src/plugin.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/plugin.c b/src/plugin.c
index 59d3572c..216fce15 100644
--- a/src/plugin.c
+++ b/src/plugin.c
@@ -36,6 +36,14 @@ struct connman_plugin {
struct connman_plugin_desc *desc;
};
+static gint compare_priority(gconstpointer a, gconstpointer b)
+{
+ const struct connman_plugin *plugin1 = a;
+ const struct connman_plugin *plugin2 = b;
+
+ return plugin2->desc->priority - plugin1->desc->priority;
+}
+
static gboolean add_plugin(void *handle, struct connman_plugin_desc *desc)
{
struct connman_plugin *plugin;
@@ -60,7 +68,7 @@ static gboolean add_plugin(void *handle, struct connman_plugin_desc *desc)
return FALSE;
}
- plugins = g_slist_append(plugins, plugin);
+ plugins = g_slist_insert_sorted(plugins, plugin, compare_priority);
return TRUE;
}