aboutsummaryrefslogtreecommitdiff
path: root/src/mm-modem-base.c
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2011-01-24 00:05:20 -0600
committerDan Williams <dcbw@redhat.com>2011-01-24 00:05:20 -0600
commit3ee40ddbce7b0d5f5308b67b2d09f7d02c0e54ca (patch)
treea66d52162d8f20d2118ff92028f17e848b4c78e9 /src/mm-modem-base.c
parent44c11adadc8cb436c23eda67d2d2509550998487 (diff)
core: add logging when ports get removed
Diffstat (limited to 'src/mm-modem-base.c')
-rw-r--r--src/mm-modem-base.c26
1 files changed, 25 insertions, 1 deletions
diff --git a/src/mm-modem-base.c b/src/mm-modem-base.c
index f303627f..099832ba 100644
--- a/src/mm-modem-base.c
+++ b/src/mm-modem-base.c
@@ -163,10 +163,34 @@ mm_modem_base_add_port (MMModemBase *self,
gboolean
mm_modem_base_remove_port (MMModemBase *self, MMPort *port)
{
+ MMModemBasePrivate *priv;
+ char *device, *key, *dupname;
+ const char *type_name, *name;
+ MMPortSubsys subsys;
+ gboolean removed;
+
g_return_val_if_fail (MM_IS_MODEM_BASE (self), FALSE);
g_return_val_if_fail (port != NULL, FALSE);
- return g_hash_table_remove (MM_MODEM_BASE_GET_PRIVATE (self)->ports, port);
+ priv = MM_MODEM_BASE_GET_PRIVATE (self);
+
+ name = mm_port_get_device (port);
+ dupname = g_strdup (name);
+ subsys = mm_port_get_subsys (port);
+ type_name = mm_port_type_to_name (mm_port_get_port_type (port));
+
+ key = get_hash_key (mm_port_subsys_to_name (subsys), name);
+ removed = g_hash_table_remove (priv->ports, key);
+ if (removed) {
+ /* Port may have already been destroyed by removal from the hash */
+ device = mm_modem_get_device (MM_MODEM (self));
+ mm_dbg ("(%s) type %s removed from %s", dupname, type_name, device);
+ g_free (device);
+ }
+ g_free (key);
+ g_free (dupname);
+
+ return removed;
}
void