aboutsummaryrefslogtreecommitdiff
path: root/src/mm-plugin-base.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mm-plugin-base.c')
-rw-r--r--src/mm-plugin-base.c50
1 files changed, 4 insertions, 46 deletions
diff --git a/src/mm-plugin-base.c b/src/mm-plugin-base.c
index a8784be4..5bad7d99 100644
--- a/src/mm-plugin-base.c
+++ b/src/mm-plugin-base.c
@@ -51,8 +51,6 @@ static GHashTable *cached_caps = NULL;
typedef struct {
char *name;
GUdevClient *client;
-
- GHashTable *modems;
GHashTable *tasks;
} MMPluginBasePrivate;
@@ -873,20 +871,6 @@ mm_plugin_base_get_cached_port_capabilities (MMPluginBase *self,
static void
modem_destroyed (gpointer data, GObject *modem)
{
- MMPluginBase *self = MM_PLUGIN_BASE (data);
- MMPluginBasePrivate *priv = MM_PLUGIN_BASE_GET_PRIVATE (self);
- GHashTableIter iter;
- gpointer key, value;
-
- /* Remove it from the modems info */
- g_hash_table_iter_init (&iter, priv->modems);
- while (g_hash_table_iter_next (&iter, &key, &value)) {
- if (value == modem) {
- g_hash_table_iter_remove (&iter);
- break;
- }
- }
-
/* Since we don't track port cached capabilities on a per-modem basis,
* we just have to live with blowing away the cached capabilities whenever
* a modem gets removed. Could do better here by storing a structure
@@ -897,21 +881,6 @@ modem_destroyed (gpointer data, GObject *modem)
g_hash_table_remove_all (cached_caps);
}
-MMModem *
-mm_plugin_base_find_modem (MMPluginBase *self,
- const char *master_device)
-{
- MMPluginBasePrivate *priv;
-
- g_return_val_if_fail (self != NULL, NULL);
- g_return_val_if_fail (MM_IS_PLUGIN_BASE (self), NULL);
- g_return_val_if_fail (master_device != NULL, NULL);
- g_return_val_if_fail (strlen (master_device) > 0, NULL);
-
- priv = MM_PLUGIN_BASE_GET_PRIVATE (self);
- return g_hash_table_lookup (priv->modems, master_device);
-}
-
/* From hostap, Copyright (c) 2002-2005, Jouni Malinen <jkmaline@cc.hut.fi> */
static int hex2num (char c)
@@ -1042,6 +1011,7 @@ supports_port (MMPlugin *plugin,
const char *subsys,
const char *name,
const char *physdev_path,
+ MMModem *existing,
MMSupportsPortResultFunc callback,
gpointer callback_data)
{
@@ -1051,7 +1021,6 @@ supports_port (MMPlugin *plugin,
char *driver = NULL, *key = NULL;
MMPluginBaseSupportsTask *task;
MMPluginSupportsResult result = MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
- MMModem *existing;
key = get_key (subsys, name);
task = g_hash_table_lookup (priv->tasks, key);
@@ -1072,9 +1041,6 @@ supports_port (MMPlugin *plugin,
g_assert (task);
g_hash_table_insert (priv->tasks, g_strdup (key), g_object_ref (task));
- /* Help the plugin out a bit by finding an existing modem for this port */
- existing = g_hash_table_lookup (priv->modems, physdev_path);
-
result = MM_PLUGIN_BASE_GET_CLASS (self)->supports_port (self, existing, task);
if (result != MM_PLUGIN_SUPPORTS_PORT_IN_PROGRESS) {
/* If the plugin doesn't support the port at all, the supports task is
@@ -1118,14 +1084,14 @@ static MMModem *
grab_port (MMPlugin *plugin,
const char *subsys,
const char *name,
+ MMModem *existing,
GError **error)
{
MMPluginBase *self = MM_PLUGIN_BASE (plugin);
MMPluginBasePrivate *priv = MM_PLUGIN_BASE_GET_PRIVATE (self);
MMPluginBaseSupportsTask *task;
+ MMModem *modem = NULL;
char *key;
- MMModem *existing = NULL, *modem = NULL;
- const char *physdev_path;
key = get_key (subsys, name);
task = g_hash_table_lookup (priv->tasks, key);
@@ -1134,16 +1100,10 @@ grab_port (MMPlugin *plugin,
g_return_val_if_fail (task != NULL, FALSE);
}
- /* Help the plugin out a bit by finding an existing modem for this port */
- physdev_path = mm_plugin_base_supports_task_get_physdev_path (task);
- existing = g_hash_table_lookup (priv->modems, physdev_path);
-
/* Let the modem grab the port */
modem = MM_PLUGIN_BASE_GET_CLASS (self)->grab_port (self, existing, task, error);
- if (modem && !existing) {
- g_hash_table_insert (priv->modems, g_strdup (physdev_path), modem);
+ if (modem && !existing)
g_object_weak_ref (G_OBJECT (modem), modem_destroyed, self);
- }
g_hash_table_remove (priv->tasks, key);
g_free (key);
@@ -1173,7 +1133,6 @@ mm_plugin_base_init (MMPluginBase *self)
priv->client = g_udev_client_new (subsys);
- priv->modems = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
priv->tasks = g_hash_table_new_full (g_str_hash, g_str_equal, g_free,
(GDestroyNotify) g_object_unref);
}
@@ -1220,7 +1179,6 @@ finalize (GObject *object)
g_object_unref (priv->client);
- g_hash_table_destroy (priv->modems);
g_hash_table_destroy (priv->tasks);
G_OBJECT_CLASS (mm_plugin_base_parent_class)->finalize (object);