diff options
author | Dan Williams <dcbw@redhat.com> | 2011-01-24 00:05:20 -0600 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2011-01-24 00:05:20 -0600 |
commit | 3ee40ddbce7b0d5f5308b67b2d09f7d02c0e54ca (patch) | |
tree | a66d52162d8f20d2118ff92028f17e848b4c78e9 /src/mm-modem-base.c | |
parent | 44c11adadc8cb436c23eda67d2d2509550998487 (diff) |
core: add logging when ports get removed
Diffstat (limited to 'src/mm-modem-base.c')
-rw-r--r-- | src/mm-modem-base.c | 26 |
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 |