diff --git a/man/NetworkManager-dispatcher.xml b/man/NetworkManager-dispatcher.xml index 4a603b156..036b3c8dc 100644 --- a/man/NetworkManager-dispatcher.xml +++ b/man/NetworkManager-dispatcher.xml @@ -164,6 +164,12 @@ The network connectivity state has changed (no connectivity, went online, etc). + + reapply + + The connection was reapplied on the device. + + The environment contains more information about the interface and the connection. diff --git a/src/core/devices/nm-device.c b/src/core/devices/nm-device.c index 248f2364f..db0d2dd24 100644 --- a/src/core/devices/nm-device.c +++ b/src/core/devices/nm-device.c @@ -13041,6 +13041,10 @@ check_and_reapply_connection(NMDevice *self, if (priv->state >= NM_DEVICE_STATE_ACTIVATED) nm_device_update_metered(self); + /* Notify dispatcher when re-applied */ + _LOGD(LOGD_DEVICE, "Notifying re-apply complete"); + nm_dispatcher_call_device(NM_DISPATCHER_ACTION_REAPPLY, self, NULL, NULL, NULL, NULL); + return TRUE; } diff --git a/src/core/nm-dispatcher.c b/src/core/nm-dispatcher.c index ab361faa7..01a638260 100644 --- a/src/core/nm-dispatcher.c +++ b/src/core/nm-dispatcher.c @@ -468,7 +468,8 @@ static const char *action_table[] = {[NM_DISPATCHER_ACTION_HOSTNAME] = NMD_ [NM_DISPATCHER_ACTION_DHCP_CHANGE_4] = NMD_ACTION_DHCP4_CHANGE, [NM_DISPATCHER_ACTION_DHCP_CHANGE_6] = NMD_ACTION_DHCP6_CHANGE, [NM_DISPATCHER_ACTION_CONNECTIVITY_CHANGE] = - NMD_ACTION_CONNECTIVITY_CHANGE}; + NMD_ACTION_CONNECTIVITY_CHANGE, + [NM_DISPATCHER_ACTION_REAPPLY] = NMD_ACTION_REAPPLY}; static const char * action_to_string(NMDispatcherAction action) diff --git a/src/core/nm-dispatcher.h b/src/core/nm-dispatcher.h index 73e0599a7..307163992 100644 --- a/src/core/nm-dispatcher.h +++ b/src/core/nm-dispatcher.h @@ -21,7 +21,8 @@ typedef enum { NM_DISPATCHER_ACTION_VPN_DOWN, NM_DISPATCHER_ACTION_DHCP_CHANGE_4, NM_DISPATCHER_ACTION_DHCP_CHANGE_6, - NM_DISPATCHER_ACTION_CONNECTIVITY_CHANGE + NM_DISPATCHER_ACTION_CONNECTIVITY_CHANGE, + NM_DISPATCHER_ACTION_REAPPLY, } NMDispatcherAction; #define NM_DISPATCHER_ACTION_DHCP_CHANGE_X(IS_IPv4) \ diff --git a/src/libnm-core-aux-extern/nm-dispatcher-api.h b/src/libnm-core-aux-extern/nm-dispatcher-api.h index 7776c84f9..56da5fba7 100644 --- a/src/libnm-core-aux-extern/nm-dispatcher-api.h +++ b/src/libnm-core-aux-extern/nm-dispatcher-api.h @@ -33,6 +33,7 @@ #define NMD_ACTION_DHCP4_CHANGE "dhcp4-change" #define NMD_ACTION_DHCP6_CHANGE "dhcp6-change" #define NMD_ACTION_CONNECTIVITY_CHANGE "connectivity-change" +#define NMD_ACTION_REAPPLY "reapply" typedef enum { DISPATCH_RESULT_UNKNOWN = 0,