Package: ifplugd Version: 0.28-2 Severity: normal /etc/hotplug.d/net/ifplugd.hotplug and /lib/udev/ifplugd.agent have tests to check HOTPLUG_INTERFACES to decide for which interfaces it should start ifplugd on add/register events, but doesn't perform these same checks for removal/unregister.
This makes it shutdown ifplugd when I unload my ipw2100 module, even though I don't have it managed by udev. On insert of the module, it doesn't start it back up. Attached is a patch to apply the HOTPLUG_INTERFACES test to both events. -- System Information: Debian Release: testing/unstable APT prefers unstable APT policy: (500, 'unstable') Architecture: i386 (i686) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.17.1 Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968) Versions of packages ifplugd depends on: ii debconf [debconf-2.0] 1.5.2 Debian configuration management sy ii libc6 2.3.6-15 GNU C Library: Shared libraries ii libdaemon0 0.10-1 lightweight C library for daemons Versions of packages ifplugd recommends: ii ifupdown 0.6.7 high level tools to configure netw -- debconf information: * ifplugd/interfaces: eth1 eth0 ifplugd/suspend_action: stop * ifplugd/hotplug_interfaces: none * ifplugd/args: -b -q -f -u0 -d0 -w -I
--- /etc/hotplug.d/net/ifplugd.hotplug.old 2006-06-27 21:43:42.000000000 -0400 +++ /etc/hotplug.d/net/ifplugd.hotplug 2006-06-27 22:11:46.000000000 -0400 @@ -28,18 +28,18 @@ fi fi -case $ACTION in -add|register) - for IF in $HOTPLUG_INTERFACES ; do - if [ "$INTERFACE" = "$IF" -o "$IF" = "all" ] ; then - debug_mesg Invoking $DAEMON_NAME for $INTERFACE - /etc/init.d/$DAEMON_NAME start $INTERFACE - break - fi - done - ;; -remove|unregister) - debug_mesg Stopping $DAEMON_NAME for $INTERFACE - /etc/init.d/$DAEMON_NAME stop $INTERFACE - ;; -esac +for IF in $HOTPLUG_INTERFACES ; do + if [ "$INTERFACE" = "$IF" -o "$IF" = "all" ] ; then + case $ACTION in + add|register) + debug_mesg Invoking $DAEMON_NAME for $INTERFACE + /etc/init.d/$DAEMON_NAME start $INTERFACE + ;; + remove|unregister) + debug_mesg Stopping $DAEMON_NAME for $INTERFACE + /etc/init.d/$DAEMON_NAME stop $INTERFACE + ;; + esac + break + fi +done
--- /lib/udev/ifplugd.agent.old 2006-06-27 21:50:05.000000000 -0400 +++ /lib/udev/ifplugd.agent 2006-06-27 22:10:20.000000000 -0400 @@ -21,18 +21,18 @@ [ -f $CFG ] || { mesg No $DAEMON_NAME configuration file ; exit 1 ; } . $CFG -case $ACTION in -add|register) - for IF in $HOTPLUG_INTERFACES ; do - if [ "$INTERFACE" = "$IF" -o "$IF" = "all" ] ; then - debug_mesg Invoking $DAEMON_NAME for $INTERFACE - exec /etc/init.d/$DAEMON_NAME start $INTERFACE& - break - fi - done - ;; -remove|unregister) - debug_mesg Stopping $DAEMON_NAME for $INTERFACE - exec /etc/init.d/$DAEMON_NAME stop $INTERFACE& - ;; -esac +for IF in $HOTPLUG_INTERFACES ; do + if [ "$INTERFACE" = "$IF" -o "$IF" = "all" ] ; then + case $ACTION in + add|register) + debug_mesg Invoking $DAEMON_NAME for $INTERFACE + exec /etc/init.d/$DAEMON_NAME start $INTERFACE& + ;; + remove|unregister) + debug_mesg Stopping $DAEMON_NAME for $INTERFACE + exec /etc/init.d/$DAEMON_NAME stop $INTERFACE& + ;; + esac + break + fi +done