diff --git a/ChangeLog b/ChangeLog index ebd925ddc4..63e08e2f91 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-05-22 Tambet Ingo + + * src/nm-gsm-device.c (device_state_changed): Make sure we don't leave the + serial device open when we're not connecting or connected. + + * src/nm-cdma-device.c (device_state_changed): Ditto. + 2008-05-20 Dan Williams * system-settings/plugins/ifcfg-fedora/reader.c diff --git a/src/nm-cdma-device.c b/src/nm-cdma-device.c index 984df79fd9..4be18163c6 100644 --- a/src/nm-cdma-device.c +++ b/src/nm-cdma-device.c @@ -385,6 +385,19 @@ device_state_changed (NMDeviceInterface *device, NMDeviceState state, gpointer u */ if (state == NM_DEVICE_STATE_UNAVAILABLE) priv->state_to_disconnected_id = g_idle_add (unavailable_to_disconnected, self); + + /* Make sure we don't leave the serial device open */ + switch (state) { + case NM_DEVICE_STATE_NEED_AUTH: + case NM_DEVICE_STATE_UNMANAGED: + case NM_DEVICE_STATE_UNAVAILABLE: + case NM_DEVICE_STATE_FAILED: + case NM_DEVICE_STATE_DISCONNECTED: + nm_serial_device_close (NM_SERIAL_DEVICE (self)); + break; + default: + break; + } } static GObject* diff --git a/src/nm-gsm-device.c b/src/nm-gsm-device.c index 282ebd1939..c57a75c11c 100644 --- a/src/nm-gsm-device.c +++ b/src/nm-gsm-device.c @@ -697,6 +697,19 @@ device_state_changed (NMDeviceInterface *device, NMDeviceState state, gpointer u */ if (state == NM_DEVICE_STATE_UNAVAILABLE) priv->state_to_disconnected_id = g_idle_add (unavailable_to_disconnected, self); + + /* Make sure we don't leave the serial device open */ + switch (state) { + case NM_DEVICE_STATE_NEED_AUTH: + case NM_DEVICE_STATE_UNMANAGED: + case NM_DEVICE_STATE_UNAVAILABLE: + case NM_DEVICE_STATE_FAILED: + case NM_DEVICE_STATE_DISCONNECTED: + nm_serial_device_close (NM_SERIAL_DEVICE (self)); + break; + default: + break; + } } static GObject*