plugin: no need to take care of probing tasks ourselves
This commit is contained in:
@@ -87,12 +87,6 @@ enum {
|
||||
|
||||
/*****************************************************************************/
|
||||
|
||||
static char *
|
||||
get_key (const char *subsys, const char *name)
|
||||
{
|
||||
return g_strdup_printf ("%s%s", subsys, name);
|
||||
}
|
||||
|
||||
const char *
|
||||
mm_plugin_get_name (MMPlugin *plugin)
|
||||
{
|
||||
@@ -370,7 +364,6 @@ port_probe_run_ready (MMPortProbe *probe,
|
||||
{
|
||||
MMPluginPrivate *priv = MM_PLUGIN_GET_PRIVATE (ctx->plugin);
|
||||
GError *error = NULL;
|
||||
gboolean keep_probe = FALSE;
|
||||
|
||||
if (!mm_port_probe_run_finish (probe, probe_result, &error)) {
|
||||
/* Probing failed */
|
||||
@@ -380,10 +373,8 @@ port_probe_run_ready (MMPortProbe *probe,
|
||||
MMPluginSupportsResult supports_result;
|
||||
|
||||
if (!apply_post_probing_filters (ctx->plugin, probe)) {
|
||||
/* Port is supported! Leave it in the internal HT until port gets
|
||||
* grabbed. */
|
||||
/* Port is supported! */
|
||||
supports_result = MM_PLUGIN_SUPPORTS_PORT_SUPPORTED;
|
||||
keep_probe = TRUE;
|
||||
|
||||
/* If we were looking for AT ports, and the port is AT,
|
||||
* and we were told that only one AT port is expected, cancel AT
|
||||
@@ -400,7 +391,6 @@ port_probe_run_ready (MMPortProbe *probe,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
/* Unsupported port, remove from internal tracking HT */
|
||||
supports_result = MM_PLUGIN_SUPPORTS_PORT_UNSUPPORTED;
|
||||
@@ -414,16 +404,6 @@ port_probe_run_ready (MMPortProbe *probe,
|
||||
/* Complete the async supports port request */
|
||||
g_simple_async_result_complete_in_idle (ctx->result);
|
||||
|
||||
/* If no longer needed, Remove probe from internal HT */
|
||||
if (!keep_probe) {
|
||||
gchar *key;
|
||||
|
||||
key = get_key (mm_port_probe_get_port_subsys (probe),
|
||||
mm_port_probe_get_port_name (probe));
|
||||
g_hash_table_remove (priv->tasks, key);
|
||||
g_free (key);
|
||||
}
|
||||
|
||||
g_object_unref (ctx->device);
|
||||
g_object_unref (ctx->result);
|
||||
g_object_unref (ctx->plugin);
|
||||
@@ -458,7 +438,6 @@ mm_plugin_supports_port (MMPlugin *self,
|
||||
{
|
||||
MMDevice *device = MM_DEVICE (device_o);
|
||||
MMPluginPrivate *priv = MM_PLUGIN_GET_PRIVATE (self);
|
||||
gchar *key = NULL;
|
||||
MMPortProbe *probe;
|
||||
GSimpleAsyncResult *async_result;
|
||||
PortProbeRunContext *ctx;
|
||||
@@ -466,10 +445,6 @@ mm_plugin_supports_port (MMPlugin *self,
|
||||
gboolean need_product_probing;
|
||||
MMPortProbeFlag probe_run_flags;
|
||||
|
||||
/* Setup key */
|
||||
key = get_key (g_udev_device_get_subsystem (port),
|
||||
g_udev_device_get_name (port));
|
||||
|
||||
async_result = g_simple_async_result_new (G_OBJECT (self),
|
||||
callback,
|
||||
user_data,
|
||||
@@ -504,12 +479,6 @@ mm_plugin_supports_port (MMPlugin *self,
|
||||
* TODO: With the new defer-until-suggested we probably don't need the modem
|
||||
* object being passed down here just for this. */
|
||||
if (g_str_equal (g_udev_device_get_subsystem (port), "net")) {
|
||||
/* Keep track of the probe object, which is considered finished */
|
||||
if (!g_hash_table_lookup (priv->tasks, key))
|
||||
g_hash_table_insert (priv->tasks,
|
||||
g_strdup (key),
|
||||
g_object_ref (probe));
|
||||
|
||||
g_simple_async_result_set_op_res_gpointer (
|
||||
async_result,
|
||||
GUINT_TO_POINTER (MM_PLUGIN_SUPPORTS_PORT_DEFER_UNTIL_SUGGESTED),
|
||||
@@ -568,13 +537,7 @@ mm_plugin_supports_port (MMPlugin *self,
|
||||
(GAsyncReadyCallback)port_probe_run_ready,
|
||||
ctx);
|
||||
|
||||
/* Keep track of the probe. Note that we got a new reference already */
|
||||
g_hash_table_insert (priv->tasks,
|
||||
g_strdup (key),
|
||||
probe);
|
||||
|
||||
out:
|
||||
g_free (key);
|
||||
g_object_unref (async_result);
|
||||
}
|
||||
|
||||
@@ -586,7 +549,6 @@ mm_plugin_create_modem (MMPlugin *self,
|
||||
GError **error)
|
||||
{
|
||||
MMDevice *device = MM_DEVICE (device_o);
|
||||
MMPluginPrivate *priv = MM_PLUGIN_GET_PRIVATE (self);
|
||||
MMBaseModem *modem = NULL;
|
||||
GList *port_probes, *l;
|
||||
|
||||
@@ -624,15 +586,6 @@ mm_plugin_create_modem (MMPlugin *self,
|
||||
g_clear_object (&modem);
|
||||
}
|
||||
|
||||
for (l = port_probes; l; l = g_list_next (l)) {
|
||||
gchar *key;
|
||||
|
||||
key = get_key (mm_port_probe_get_port_subsys (l->data),
|
||||
mm_port_probe_get_port_name (l->data));
|
||||
g_hash_table_remove (priv->tasks, key);
|
||||
g_free (key);
|
||||
}
|
||||
|
||||
return modem;
|
||||
}
|
||||
|
||||
@@ -647,10 +600,6 @@ mm_plugin_init (MMPlugin *self)
|
||||
* we just use this client for sync queries. */
|
||||
priv->client = g_udev_client_new (NULL);
|
||||
|
||||
priv->tasks = g_hash_table_new_full (g_str_hash,
|
||||
g_str_equal,
|
||||
g_free,
|
||||
(GDestroyNotify) g_object_unref);
|
||||
/* Defaults */
|
||||
priv->send_delay = 100000;
|
||||
}
|
||||
@@ -781,8 +730,6 @@ finalize (GObject *object)
|
||||
|
||||
g_object_unref (priv->client);
|
||||
|
||||
g_hash_table_destroy (priv->tasks);
|
||||
|
||||
G_OBJECT_CLASS (mm_plugin_parent_class)->finalize (object);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user