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

Reply via email to