nm-device-modem: deactivate device when modem unlocked

When the modem is unlocked externally to NetworkManager, it is kept in
the 'need-auth' state. The current connection activation continues as
if nothing had changed, and the secrets request for the PIN code (which
is no longer necessary) eventually times out. The device state is then
changed to 'failed', meaning there won't be a new try at activating the
default connection automatically.

In order to prevent this, and retry activating the default connection
when the modem gets unlocked, we change the device state to
'deactivating' when we identify the modem has been unlocked externally.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
This commit is contained in:
Arnaud Ferraris
2020-03-26 10:06:14 +01:00
parent c8b752c973
commit df20a98aa4

View File

@@ -384,6 +384,15 @@ modem_state_cb (NMModem *modem,
*/
nm_modem_set_mm_enabled (priv->modem, priv->rf_enabled);
if (dev_state == NM_DEVICE_STATE_NEED_AUTH) {
/* The modem was unlocked externally to NetworkManager,
deactivate so the default connection can be
automatically activated again */
nm_device_state_changed (device,
NM_DEVICE_STATE_DEACTIVATING,
NM_DEVICE_STATE_REASON_MODEM_AVAILABLE);
}
/* Now allow connections without a PIN to be available */
nm_device_recheck_available_connections (device);
}