core: add logging when ports get removed

This commit is contained in:
Dan Williams
2011-01-24 00:05:20 -06:00
parent 44c11adadc
commit 3ee40ddbce
2 changed files with 29 additions and 3 deletions

View File

@@ -836,7 +836,7 @@ device_removed (MMManager *manager, GUdevDevice *device)
MMManagerPrivate *priv = MM_MANAGER_GET_PRIVATE (manager);
MMModem *modem;
const char *subsys, *name;
char *key;
char *key, *modem_device;
SupportsInfo *info;
g_return_if_fail (device != NULL);
@@ -851,6 +851,9 @@ device_removed (MMManager *manager, GUdevDevice *device)
/* find_modem_for_port handles tty and net removal */
modem = find_modem_for_port (manager, subsys, name);
if (modem) {
modem_device = mm_modem_get_device (modem);
mm_info ("(%s/%s): released by modem %s", subsys, name, modem_device);
g_free (modem_device);
mm_modem_release_port (modem, subsys, name);
return;
}
@@ -865,7 +868,6 @@ device_removed (MMManager *manager, GUdevDevice *device)
*/
const char *sysfs_path = g_udev_device_get_sysfs_path (device);
// mm_dbg ("Looking for a modem for removed device %s", sysfs_path);
modem = find_modem_for_device (manager, sysfs_path);
if (modem) {
mm_dbg ("Removing modem claimed by removed device %s", sysfs_path);

View File

@@ -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