summaryrefslogtreecommitdiff
path: root/callouts
diff options
context:
space:
mode:
authorDan Winship <danw@redhat.com>2014-12-16 14:08:38 -0500
committerDan Winship <danw@redhat.com>2015-01-14 11:35:17 -0500
commit1a97ff295335b00acd05250d2b408f3a157b0d7a (patch)
tree89a6253e8b4e537ed4270314916d45c414ae0884 /callouts
parent3572160f55924cf64c57a86bc537ab017a2574d2 (diff)
downloadNetworkManager-1a97ff295335b00acd05250d2b408f3a157b0d7a.tar.gz
dispatcher: pass CONNECTION_FILENAME to dispatcher scripts
(cherry picked from commit bd2deace7081dc1327e7bb6ab416d49da4ae79ce)
Diffstat (limited to 'callouts')
-rw-r--r--callouts/nm-dispatcher-api.h1
-rw-r--r--callouts/nm-dispatcher-utils.c5
-rw-r--r--callouts/tests/dispatcher-old-down1
-rw-r--r--callouts/tests/dispatcher-old-up1
-rw-r--r--callouts/tests/dispatcher-old-vpn-down1
-rw-r--r--callouts/tests/dispatcher-old-vpn-up1
-rw-r--r--callouts/tests/test-dispatcher-envp.c7
7 files changed, 17 insertions, 0 deletions
diff --git a/callouts/nm-dispatcher-api.h b/callouts/nm-dispatcher-api.h
index df1bced456..9b2c3b32cb 100644
--- a/callouts/nm-dispatcher-api.h
+++ b/callouts/nm-dispatcher-api.h
@@ -31,6 +31,7 @@
#define NM_DISPATCHER_DBUS_PATH "/org/freedesktop/nm_dispatcher"
#define NMD_CONNECTION_PROPS_PATH "path"
+#define NMD_CONNECTION_PROPS_FILENAME "filename"
#define NMD_DEVICE_PROPS_INTERFACE "interface"
#define NMD_DEVICE_PROPS_IP_INTERFACE "ip-interface"
diff --git a/callouts/nm-dispatcher-utils.c b/callouts/nm-dispatcher-utils.c
index 99616c1a12..e84b5669cd 100644
--- a/callouts/nm-dispatcher-utils.c
+++ b/callouts/nm-dispatcher-utils.c
@@ -334,6 +334,7 @@ nm_dispatcher_utils_construct_envp (const char *action,
{
const char *iface = NULL, *ip_iface = NULL;
const char *uuid = NULL, *id = NULL, *path;
+ const char *filename = NULL;
NMDeviceState dev_state = NM_DEVICE_STATE_UNKNOWN;
GVariant *value;
char **envp = NULL, *path_item;
@@ -349,6 +350,10 @@ nm_dispatcher_utils_construct_envp (const char *action,
if (!strcmp (action, "hostname"))
goto done;
+ /* config filename */
+ if (g_variant_lookup (connection_props, NMD_CONNECTION_PROPS_FILENAME, "&s", &filename))
+ items = g_slist_prepend (items, g_strdup_printf ("CONNECTION_FILENAME=%s", filename));
+
/* Canonicalize the VPN interface name; "" is used when passing it through
* D-Bus so make sure that's fixed up here.
*/
diff --git a/callouts/tests/dispatcher-old-down b/callouts/tests/dispatcher-old-down
index 836f353289..80980856c4 100644
--- a/callouts/tests/dispatcher-old-down
+++ b/callouts/tests/dispatcher-old-down
@@ -15,6 +15,7 @@ path=/org/freedesktop/NetworkManager/Devices/0
PATH=
CONNECTION_UUID=3fd2a33a-d81b-423f-ae99-e6baba742311
CONNECTION_ID=Random Connection
+CONNECTION_FILENAME=/callouts/tests/dispatcher-old-down
DEVICE_IFACE=wlan0
DEVICE_IP_IFACE=wlan0
diff --git a/callouts/tests/dispatcher-old-up b/callouts/tests/dispatcher-old-up
index 53f35ace6c..e4eb8e6c7b 100644
--- a/callouts/tests/dispatcher-old-up
+++ b/callouts/tests/dispatcher-old-up
@@ -34,6 +34,7 @@ domains=hsd1.mn.comcast.net.
PATH=
CONNECTION_UUID=3fd2a33a-d81b-423f-ae99-e6baba742311
CONNECTION_ID=Random Connection
+CONNECTION_FILENAME=/callouts/tests/dispatcher-old-up
DEVICE_IFACE=wlan0
DEVICE_IP_IFACE=wlan0
IP4_ADDRESS_0=192.168.1.119/24 192.168.1.1
diff --git a/callouts/tests/dispatcher-old-vpn-down b/callouts/tests/dispatcher-old-vpn-down
index 1f1cf2b64d..e702445011 100644
--- a/callouts/tests/dispatcher-old-vpn-down
+++ b/callouts/tests/dispatcher-old-vpn-down
@@ -34,6 +34,7 @@ domains=hsd1.mn.comcast.net.
PATH=
CONNECTION_UUID=355653c0-34d3-4777-ad25-f9a498b7ef8e
CONNECTION_ID=Random Connection
+CONNECTION_FILENAME=/callouts/tests/dispatcher-old-vpn-down
DEVICE_IFACE=wlan0
DEVICE_IP_IFACE=tun0
IP4_ADDRESS_0=192.168.1.119/24 192.168.1.1
diff --git a/callouts/tests/dispatcher-old-vpn-up b/callouts/tests/dispatcher-old-vpn-up
index 7cda8a69a2..619c6fec6b 100644
--- a/callouts/tests/dispatcher-old-vpn-up
+++ b/callouts/tests/dispatcher-old-vpn-up
@@ -34,6 +34,7 @@ domains=hsd1.mn.comcast.net.
PATH=
CONNECTION_UUID=355653c0-34d3-4777-ad25-f9a498b7ef8e
CONNECTION_ID=Random Connection
+CONNECTION_FILENAME=/callouts/tests/dispatcher-old-vpn-up
DEVICE_IFACE=wlan0
DEVICE_IP_IFACE=tun0
IP4_ADDRESS_0=192.168.1.119/24 192.168.1.1
diff --git a/callouts/tests/test-dispatcher-envp.c b/callouts/tests/test-dispatcher-envp.c
index 460174b230..a715b62c26 100644
--- a/callouts/tests/test-dispatcher-envp.c
+++ b/callouts/tests/test-dispatcher-envp.c
@@ -34,6 +34,7 @@
static gboolean
parse_main (GKeyFile *kf,
+ const char *filename,
GVariant **out_con_dict,
GVariant **out_con_props,
char **out_expected_iface,
@@ -82,6 +83,11 @@ parse_main (GKeyFile *kf,
g_variant_builder_add (&props, "{sv}",
"connection-path",
g_variant_new_object_path ("/org/freedesktop/NetworkManager/Connections/5"));
+ /* Strip out the non-fixed portion of the filename */
+ filename = strstr (filename, "/callouts");
+ g_variant_builder_add (&props, "{sv}",
+ "filename",
+ g_variant_new_string (filename));
*out_con_props = g_variant_builder_end (&props);
return TRUE;
@@ -358,6 +364,7 @@ get_dispatcher_file (const char *file,
return FALSE;
if (!parse_main (kf,
+ file,
out_con_dict,
out_con_props,
out_expected_iface,