diff --git a/src/devices/wwan/nm-modem-broadband.c b/src/devices/wwan/nm-modem-broadband.c index 717b6e6872..5736df3c8a 100644 --- a/src/devices/wwan/nm-modem-broadband.c +++ b/src/devices/wwan/nm-modem-broadband.c @@ -1088,14 +1088,16 @@ simple_disconnect_ready (MMModemSimple *modem_iface, } static void -disconnect (NMModem *self, +disconnect (NMModem *modem, gboolean warn, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { + NMModemBroadband *self = NM_MODEM_BROADBAND (modem); DisconnectContext *ctx; + connect_context_clear (self); ctx = g_slice_new (DisconnectContext); ctx->self = g_object_ref (self); ctx->result = g_simple_async_result_new (G_OBJECT (self), diff --git a/src/devices/wwan/nm-modem.c b/src/devices/wwan/nm-modem.c index 804a6d9c97..a6c770072c 100644 --- a/src/devices/wwan/nm-modem.c +++ b/src/devices/wwan/nm-modem.c @@ -1187,6 +1187,7 @@ nm_modem_device_state_changed (NMModem *self, case NM_DEVICE_STATE_UNMANAGED: case NM_DEVICE_STATE_UNAVAILABLE: case NM_DEVICE_STATE_FAILED: + case NM_DEVICE_STATE_DISCONNECTED: if (priv->act_request) { cancel_get_secrets (self); g_object_unref (priv->act_request); @@ -1195,7 +1196,7 @@ nm_modem_device_state_changed (NMModem *self, if (was_connected) { /* Don't bother warning on FAILED since the modem is already gone */ - if (new_state == NM_DEVICE_STATE_FAILED) + if (new_state == NM_DEVICE_STATE_FAILED || new_state == NM_DEVICE_STATE_DISCONNECTED) warn = FALSE; /* First cleanup */ NM_MODEM_GET_CLASS (self)->deactivate_cleanup (self, NULL);