mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-07-21 10:14:41 +00:00
merge: branch 'bg/deactivate-reason'
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1770 https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/issues/1405
This commit is contained in:
commit
b0d606b427
|
@ -259,7 +259,8 @@ static void
|
|||
device_state_changed(NMActiveConnection *active,
|
||||
NMDevice *device,
|
||||
NMDeviceState new_state,
|
||||
NMDeviceState old_state)
|
||||
NMDeviceState old_state,
|
||||
NMDeviceStateReason reason)
|
||||
{
|
||||
NMActiveConnectionState cur_ac_state = nm_active_connection_get_state(active);
|
||||
NMActiveConnectionState ac_state = NM_ACTIVE_CONNECTION_STATE_UNKNOWN;
|
||||
|
@ -319,14 +320,20 @@ device_state_changed(NMActiveConnection *active,
|
|||
active);
|
||||
break;
|
||||
case NM_DEVICE_STATE_DEACTIVATING:
|
||||
if (reason == NM_DEVICE_STATE_REASON_USER_REQUESTED)
|
||||
ac_state_reason = NM_ACTIVE_CONNECTION_STATE_REASON_USER_DISCONNECTED;
|
||||
|
||||
ac_state = NM_ACTIVE_CONNECTION_STATE_DEACTIVATING;
|
||||
break;
|
||||
case NM_DEVICE_STATE_FAILED:
|
||||
case NM_DEVICE_STATE_DISCONNECTED:
|
||||
case NM_DEVICE_STATE_UNMANAGED:
|
||||
case NM_DEVICE_STATE_UNAVAILABLE:
|
||||
ac_state = NM_ACTIVE_CONNECTION_STATE_DEACTIVATED;
|
||||
ac_state_reason = NM_ACTIVE_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED;
|
||||
ac_state = NM_ACTIVE_CONNECTION_STATE_DEACTIVATED;
|
||||
if (reason == NM_DEVICE_STATE_REASON_USER_REQUESTED)
|
||||
ac_state_reason = NM_ACTIVE_CONNECTION_STATE_REASON_USER_DISCONNECTED;
|
||||
else
|
||||
ac_state_reason = NM_ACTIVE_CONNECTION_STATE_REASON_DEVICE_DISCONNECTED;
|
||||
|
||||
g_signal_handlers_disconnect_by_func(device, G_CALLBACK(device_notify), active);
|
||||
break;
|
||||
|
|
|
@ -636,7 +636,8 @@ device_state_changed(NMDevice *device,
|
|||
NM_ACTIVE_CONNECTION_GET_CLASS(self)->device_state_changed(self,
|
||||
device,
|
||||
new_state,
|
||||
old_state);
|
||||
old_state,
|
||||
reason);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
@ -78,7 +78,8 @@ typedef struct {
|
|||
void (*device_state_changed)(NMActiveConnection *connection,
|
||||
NMDevice *device,
|
||||
NMDeviceState new_state,
|
||||
NMDeviceState old_state);
|
||||
NMDeviceState old_state,
|
||||
NMDeviceStateReason reason);
|
||||
void (*master_failed)(NMActiveConnection *connection);
|
||||
|
||||
void (*device_changed)(NMActiveConnection *connection,
|
||||
|
|
|
@ -1143,7 +1143,8 @@ static void
|
|||
device_state_changed(NMActiveConnection *active,
|
||||
NMDevice *device,
|
||||
NMDeviceState new_state,
|
||||
NMDeviceState old_state)
|
||||
NMDeviceState old_state,
|
||||
NMDeviceStateReason reason)
|
||||
{
|
||||
if (_service_and_connection_can_persist(NM_VPN_CONNECTION(active))) {
|
||||
if (new_state <= NM_DEVICE_STATE_DISCONNECTED || new_state == NM_DEVICE_STATE_FAILED) {
|
||||
|
|
Loading…
Reference in a new issue