diff options
| -rw-r--r-- | debian/changelog | 10 | ||||
| -rw-r--r-- | debian/network-manager-dispatcher.script | 44 | ||||
| -rw-r--r-- | debian/patches/06-dispatch_more_events.patch | 104 | ||||
| -rwxr-xr-x | debian/rules | 4 |
4 files changed, 161 insertions, 1 deletions
diff --git a/debian/changelog b/debian/changelog index 454b61aa..a69ea7bc 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,13 @@ +network-manager (0.6.2-2) unstable; urgency=low + + * More integration work. + Added network-manager-dispatcher.script and 06-dispatch_more_events.patch. + This way the scripts in /etc/networks/if-*.d/ are called properly by + NetworkManagerDispatcher. + Thanks to the Ubuntu devs for this work! + + -- Michael Biebl <biebl@teco.edu> Wed, 5 Apr 2006 18:52:57 +0200 + network-manager (0.6.2-1) unstable; urgency=low * New upstream release. diff --git a/debian/network-manager-dispatcher.script b/debian/network-manager-dispatcher.script new file mode 100644 index 00000000..abc6e4d5 --- /dev/null +++ b/debian/network-manager-dispatcher.script @@ -0,0 +1,44 @@ +#!/bin/sh -e +# Script to dispatch NetworkManager events +# +# Runs ifupdown scripts when NetworkManager fiddles with interfaces. + +if [ -z "$1" ]; then + echo "$0: called with no interface" 1>&2 + exit 1; +fi + +# Fake ifupdown environment +export IFACE="$1" +export LOGICAL="$1" +export ADDRFAM="NetworkManager" +export METHOD="NetworkManager" +export VERBOSITY="0" + +# Run the right scripts +case "$2" in + up) + export MODE="start" + export PHASE="up" + exec run-parts /etc/network/if-up.d + ;; + down) + export MODE="stop" + export PHASE="down" + exec run-parts /etc/network/if-down.d + ;; + pre-up) + export MODE="start" + export PHASE="pre-up" + exec run-parts /etc/network/if-pre-up.d + ;; + post-down) + export MODE="stop" + export PHASE="post-down" + exec run-parts /etc/network/if-post-down.d + ;; + *) + echo "$0: called with unknown action \`$2'" 1>&2 + exit 1 + ;; +esac diff --git a/debian/patches/06-dispatch_more_events.patch b/debian/patches/06-dispatch_more_events.patch new file mode 100644 index 00000000..e8b30810 --- /dev/null +++ b/debian/patches/06-dispatch_more_events.patch @@ -0,0 +1,104 @@ +diff -ruNp network-manager-0.6.2~/dispatcher-daemon/NetworkManagerDispatcher.c network-manager-0.6.2/dispatcher-daemon/NetworkManagerDispatcher.c +--- network-manager-0.6.2~/dispatcher-daemon/NetworkManagerDispatcher.c 2006-03-13 16:51:57.000000000 +0000 ++++ network-manager-0.6.2/dispatcher-daemon/NetworkManagerDispatcher.c 2006-04-03 18:14:06.000000000 +0100 +@@ -44,6 +44,8 @@ enum NMDAction + NMD_DEVICE_DONT_KNOW, + NMD_DEVICE_NOW_INACTIVE, + NMD_DEVICE_NOW_ACTIVE, ++ NMD_DEVICE_GOING_INACTIVE, ++ NMD_DEVICE_GOING_ACTIVE, + }; + typedef enum NMDAction NMDAction; + +@@ -95,6 +97,10 @@ static void nmd_execute_scripts (NMDActi + if (action == NMD_DEVICE_NOW_ACTIVE) + char_act = "up"; + else if (action == NMD_DEVICE_NOW_INACTIVE) ++ char_act = "post-down"; ++ else if (action == NMD_DEVICE_GOING_ACTIVE) ++ char_act = "pre-up"; ++ else if (action == NMD_DEVICE_GOING_INACTIVE) + char_act = "down"; + else + return; +@@ -217,9 +223,13 @@ static DBusHandlerResult nmd_dbus_filter + } + + if (dbus_message_is_signal (message, NM_DBUS_INTERFACE, "DeviceNoLongerActive")) +- action = NMD_DEVICE_NOW_INACTIVE; ++ action = NMD_DEVICE_GOING_INACTIVE; + else if (dbus_message_is_signal (message, NM_DBUS_INTERFACE, "DeviceNowActive")) + action = NMD_DEVICE_NOW_ACTIVE; ++ else if (dbus_message_is_signal (message, NM_DBUS_INTERFACE, "DeviceActivating")) ++ action = NMD_DEVICE_GOING_ACTIVE; ++ else if (dbus_message_is_signal (message, NM_DBUS_INTERFACE, "DeviceDeactivated")) ++ action = NMD_DEVICE_NOW_INACTIVE; + + if (action != NMD_DEVICE_DONT_KNOW) + { +@@ -234,8 +244,10 @@ static DBusHandlerResult nmd_dbus_filter + if (dev_object_path && dev_iface_name) + { + nm_info ("Device %s (%s) is now %s.", dev_object_path, dev_iface_name, +- (action == NMD_DEVICE_NOW_INACTIVE ? "down" : +- (action == NMD_DEVICE_NOW_ACTIVE ? "up" : "error"))); ++ (action == NMD_DEVICE_NOW_INACTIVE ? "going down" : ++ (action == NMD_DEVICE_NOW_ACTIVE ? "up" : ++ (action == NMD_DEVICE_GOING_INACTIVE ? "going down" : ++ (action == NMD_DEVICE_GOING_ACTIVE ? "going up" : "error"))))); + + nmd_execute_scripts (action, dev_iface_name); + } +diff -ruNp network-manager-0.6.2~/man/NetworkManagerDispatcher.1.in network-manager-0.6.2/man/NetworkManagerDispatcher.1.in +--- network-manager-0.6.2~/man/NetworkManagerDispatcher.1.in 2006-04-03 18:10:32.000000000 +0100 ++++ network-manager-0.6.2/man/NetworkManagerDispatcher.1.in 2006-04-03 18:14:06.000000000 +0100 +@@ -13,10 +13,14 @@ The \fINetworkManagerDispatcher\fP daemo + directory in response to interfaces coming up and down. The scripts are run + alphabetically. The first parameter is the network interface name. The second + parameter is ++.I pre\-up ++before bringing the interface up, + .I up +-if the interface is now up and ++after bringing the interface up, + .I down +-if the interface is now down. ++before taking the interface down and ++.I post\-down ++after taking the interface down. + .SH OPTIONS + The following options are supported: + .TP +diff -ruNp network-manager-0.6.2~/src/NetworkManagerDbus.c network-manager-0.6.2/src/NetworkManagerDbus.c +--- network-manager-0.6.2~/src/NetworkManagerDbus.c 2006-02-24 18:59:03.000000000 +0000 ++++ network-manager-0.6.2/src/NetworkManagerDbus.c 2006-04-03 18:14:06.000000000 +0100 +@@ -193,6 +193,7 @@ static DeviceStatusSignals dev_status_si + { DEVICE_NOW_ACTIVE, "DeviceNowActive" }, + { DEVICE_ACTIVATING, "DeviceActivating" }, + { DEVICE_ACTIVATION_FAILED, "DeviceActivationFailed" }, ++ { DEVICE_DEACTIVATED, "DeviceDeactivated" }, + { DEVICE_ADDED, "DeviceAdded" }, + { DEVICE_REMOVED, "DeviceRemoved" }, + { DEVICE_CARRIER_ON, "DeviceCarrierOn" }, +diff -ruNp network-manager-0.6.2~/src/NetworkManagerDbus.h network-manager-0.6.2/src/NetworkManagerDbus.h +--- network-manager-0.6.2~/src/NetworkManagerDbus.h 2005-12-31 08:21:22.000000000 +0000 ++++ network-manager-0.6.2/src/NetworkManagerDbus.h 2006-04-03 18:14:06.000000000 +0100 +@@ -40,6 +40,7 @@ typedef enum + DEVICE_ACTIVATING, + DEVICE_ACTIVATION_FAILED, + DEVICE_ACTIVATION_CANCELED, ++ DEVICE_DEACTIVATED, + DEVICE_ADDED, + DEVICE_REMOVED, + DEVICE_CARRIER_ON, +diff -ruNp network-manager-0.6.2~/src/nm-device.c network-manager-0.6.2/src/nm-device.c +--- network-manager-0.6.2~/src/nm-device.c 2006-03-21 17:56:34.000000000 +0000 ++++ network-manager-0.6.2/src/nm-device.c 2006-04-03 18:14:06.000000000 +0100 +@@ -1445,6 +1445,7 @@ nm_device_deactivate (NMDevice *self) + NM_DEVICE_GET_CLASS (self)->deactivate (self); + + nm_schedule_state_change_signal_broadcast (self->priv->app_data); ++ nm_dbus_schedule_device_status_change_signal (self->priv->app_data, self, NULL, DEVICE_DEACTIVATED); + } + + diff --git a/debian/rules b/debian/rules index d8813abe..121f42b8 100755 --- a/debian/rules +++ b/debian/rules @@ -28,4 +28,6 @@ binary-install/network-manager:: debian/network-manager/etc/dbus-1/event.d/25NetworkManager install -m 755 debian/network-manager-dispatcher.dbus-event \ debian/network-manager/etc/dbus-1/event.d/26NetworkManagerDispatcher - + install -m 755 debian/network-manager-dispatcher.script \ + debian/network-manager/etc/NetworkManager/dispatcher.d/01ifupdown + |