summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2023-02-08 20:49:40 +0100
committerThomas Haller <thaller@redhat.com>2023-02-08 20:49:40 +0100
commit3fd28a11d4bb9e7cfd9f86bc3af90a71a447f7fc (patch)
tree3b7daad586b60bf86f7a97a25e44bbf048bcb111
parent8b66865a88af7bf835147d66c309dae008507c36 (diff)
parent0e3d2c367c1cb640e79eba13a38feae0996507be (diff)
downloadNetworkManager-3fd28a11d4bb9e7cfd9f86bc3af90a71a447f7fc.tar.gz
dispatcher: merge branch 'dylanvanassche:method-change-dispatch'
https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1311
-rw-r--r--man/NetworkManager-dispatcher.xml6
-rw-r--r--src/core/devices/nm-device.c4
-rw-r--r--src/core/nm-dispatcher.c3
-rw-r--r--src/core/nm-dispatcher.h3
-rw-r--r--src/libnm-core-aux-extern/nm-dispatcher-api.h1
5 files changed, 15 insertions, 2 deletions
diff --git a/man/NetworkManager-dispatcher.xml b/man/NetworkManager-dispatcher.xml
index 4a603b1566..036b3c8dcc 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).
</para></listitem>
</varlistentry>
+ <varlistentry>
+ <term><varname>reapply</varname></term>
+ <listitem><para>
+ The connection was reapplied on the device.
+ </para></listitem>
+ </varlistentry>
</variablelist>
<para>
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 248f2364f5..db0d2dd24d 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 ab361faa7b..01a6382609 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 73e0599a75..3071639922 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 7776c84f9a..56da5fba7a 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,