diff options
author | Tambet Ingo <tambet@gmail.com> | 2008-08-21 09:11:17 +0300 |
---|---|---|
committer | Tambet Ingo <tambet@gmail.com> | 2008-08-21 09:11:17 +0300 |
commit | 149b41f2205948a8446bf2d9f8c8b7b9dfa0e1d1 (patch) | |
tree | 7ec68080859861875c05448da48b6ab4a6052da3 /src/mm-manager.c | |
parent | 751a9f8273a063b7d5bb99093ed4583b34614643 (diff) |
Implement per modem type DBus interfaces.
A major code reorganization.
Diffstat (limited to 'src/mm-manager.c')
-rw-r--r-- | src/mm-manager.c | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/src/mm-manager.c b/src/mm-manager.c index 6ea936f6..4f18633e 100644 --- a/src/mm-manager.c +++ b/src/mm-manager.c @@ -222,28 +222,29 @@ create_initial_modems_from_plugins (MMManager *manager) for (iter = priv->plugins; iter; iter = iter->next) { MMPlugin *plugin = MM_PLUGIN (iter->data); - GSList *udis; - GSList *udi_iter; + char **udis; + int i; udis = mm_plugin_list_supported_udis (plugin, priv->hal_ctx); - for (udi_iter = udis; udi_iter; udi_iter = udi_iter->next) { - char *udi = (char *) udi_iter->data; - MMModem *modem; - - if (modem_exists (manager, udi)) { - g_warning ("Modem for UDI %s already exists, ignoring", udi); - continue; + if (udis) { + for (i = 0; udis[i]; i++) { + char *udi = udis[i]; + MMModem *modem; + + if (modem_exists (manager, udi)) { + g_warning ("Modem for UDI %s already exists, ignoring", udi); + continue; + } + + modem = mm_plugin_create_modem (plugin, priv->hal_ctx, udi); + if (modem) + add_modem (manager, udi, modem); + else + g_warning ("Plugin failed to create modem for UDI %s", udi); } - modem = mm_plugin_create_modem (plugin, priv->hal_ctx, udi); - if (modem) - add_modem (manager, udi, modem); - else - g_warning ("Plugin failed to create modem for UDI %s", udi); + g_strfreev (udis); } - - g_slist_foreach (udis, (GFunc) g_free, NULL); - g_slist_free (udis); } } |