core: add logging when ports get removed
This commit is contained in:
@@ -836,7 +836,7 @@ device_removed (MMManager *manager, GUdevDevice *device)
|
|||||||
MMManagerPrivate *priv = MM_MANAGER_GET_PRIVATE (manager);
|
MMManagerPrivate *priv = MM_MANAGER_GET_PRIVATE (manager);
|
||||||
MMModem *modem;
|
MMModem *modem;
|
||||||
const char *subsys, *name;
|
const char *subsys, *name;
|
||||||
char *key;
|
char *key, *modem_device;
|
||||||
SupportsInfo *info;
|
SupportsInfo *info;
|
||||||
|
|
||||||
g_return_if_fail (device != NULL);
|
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 */
|
/* find_modem_for_port handles tty and net removal */
|
||||||
modem = find_modem_for_port (manager, subsys, name);
|
modem = find_modem_for_port (manager, subsys, name);
|
||||||
if (modem) {
|
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);
|
mm_modem_release_port (modem, subsys, name);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -865,7 +868,6 @@ device_removed (MMManager *manager, GUdevDevice *device)
|
|||||||
*/
|
*/
|
||||||
const char *sysfs_path = g_udev_device_get_sysfs_path (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);
|
modem = find_modem_for_device (manager, sysfs_path);
|
||||||
if (modem) {
|
if (modem) {
|
||||||
mm_dbg ("Removing modem claimed by removed device %s", sysfs_path);
|
mm_dbg ("Removing modem claimed by removed device %s", sysfs_path);
|
||||||
|
@@ -163,10 +163,34 @@ mm_modem_base_add_port (MMModemBase *self,
|
|||||||
gboolean
|
gboolean
|
||||||
mm_modem_base_remove_port (MMModemBase *self, MMPort *port)
|
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 (MM_IS_MODEM_BASE (self), FALSE);
|
||||||
g_return_val_if_fail (port != NULL, 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
|
void
|
||||||
|
Reference in New Issue
Block a user