NetworkManager/callouts/nm-dispatcher.xml
Dan Williams f898dbf1a9 dispatcher: enhance dispatcher script environment (bgo #648382)
For VPN connections, the interface name would be that of the VPN's
IP interface, but the script environment would be the that of the
VPN's parent device.  Enhance the environment by adding any VPN
specific details as additional environment variables prefixed by
"VPN_".  Leave the existing environment setup intact for backwards
compatiblity.

Additionally, the dispatcher never got updated for IPv6 support,
so push IPv6 configuration and DHCPv6 configuration into the
environment too.

Even better, push everything the dispatcher needs to it instead
of making the dispatcher make D-Bus requests back to NM, which
sometimes fails if NM has already torn down the device or the
connection which the device was using.

And add some testcases to ensure that we don't break backwards compat,
the testcases here were grabbed from a 0.8.4 machine with a hacked up
dispatcher to dump everything it was given from NM.
2011-05-02 22:54:28 -05:00

77 lines
2.2 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<node name="/" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
<interface name="org.freedesktop.nm_dispatcher">
<method name="Action">
<tp:docstring>
INTERNAL; not public API. Perform an action.
</tp:docstring>
<arg name="action" type="s" direction="in">
<tp:docstring>
The action being performed.
</tp:docstring>
</arg>
<arg name="connection" type="a{sa{sv}}" direction="in">
<tp:docstring>
The connection for which this action was triggered.
</tp:docstring>
</arg>
<arg name="connection_properties" type="a{sv}" direction="in">
<tp:docstring>
Properties of the connection, including service and path.
</tp:docstring>
</arg>
<arg name="device_properties" type="a{sv}" direction="in">
<tp:docstring>
Properties of the device, including type, path, interface, and state.
</tp:docstring>
</arg>
<arg name="device_ip4_config" type="a{sv}" direction="in">
<tp:docstring>
Properties of the device's IPv4 configuration.
</tp:docstring>
</arg>
<arg name="device_ip6_config" type="a{sv}" direction="in">
<tp:docstring>
Properties of the device's IPv6 configuration.
</tp:docstring>
</arg>
<arg name="device_dhcp4_config" type="a{sv}" direction="in">
<tp:docstring>
Properties of the device's DHCPv4 configuration.
</tp:docstring>
</arg>
<arg name="device_dhcp6_config" type="a{sv}" direction="in">
<tp:docstring>
Properties of the device's DHCPv6 configuration.
</tp:docstring>
</arg>
<arg name="vpn_ip_iface" type="s" direction="in">
<tp:docstring>VPN interface name.</tp:docstring>
</arg>
<arg name="vpn_ip4_config" type="a{sv}" direction="in">
<tp:docstring>
Properties of the VPN's IPv4 configuration.
</tp:docstring>
</arg>
<arg name="vpn_ip6_config" type="a{sv}" direction="in">
<tp:docstring>
Properties of the VPN's IPv6 configuration.
</tp:docstring>
</arg>
</method>
</interface>
</node>