Hi,

        This bug has gone around enough, it's time to find a solution
and fix it for good.

        This is my solution :

-----------------------------------------------------------
diff -u -p ifplugd-0.26/debian/hotplug-old ifplugd-0.26/debian/hotplug
--- ifplugd-0.26/debian/hotplug-old     2005-03-14 18:02:18.000000000 -0800
+++ ifplugd-0.26/debian/hotplug 2005-03-14 18:05:21.000000000 -0800
@@ -32,6 +32,18 @@ case $ACTION in
 add|register)
        for IF in $HOTPLUG_INTERFACES ; do
                if [ "$INTERFACE" = "$IF" -o "$IF" = "all" ] ; then
+                       # Run ifrename as needed - Jean II
+                       # This is required because we bypass net.agent
+                       # where it's normally done.
+                       if [ -x /sbin/ifrename ] && [ -r /etc/iftab ]; then
+                               debug_mesg invoke ifrename for $INTERFACE
+                               NEWNAME=`/sbin/ifrename -i $INTERFACE`
+                               if [ -n "$NEWNAME" ]; then
+                                       debug_mesg iface $INTERFACE is remapped 
to $NEWNAME
+                                       INTERFACE=$NEWNAME
+                               fi;
+                       fi
+
                        debug_mesg Invoking $DAEMON_NAME for $INTERFACE
                        /etc/init.d/$DAEMON_NAME start $INTERFACE
                        break
-----------------------------------------------------------

        My comments :

        1) ifrename was made to be called from various places, so I
don't mind adding one more. It's called from hotplug, but also from
the standard network init scripts. It cal also be called from
/etc/network/interfaces if you want. That's why the command line has
so many options.

        2) I personally feel that running ifplugd from hotplug is
completely wrong for various reasons. I strongly believe that it
should be called from ifup.
                a) Not all interface configuration goes through
hotplug. I may want to enable interfaces manually.
                b) I want to control which interface are ifplugd or
not in /etc/network/interfaces, where all my configuration reside. I
don't want network configuration scatered in zillion places.
                c) ifplugd is a super-dhcp, as far as I am concerned,
I don't know why we should treat it differently than dhcp (which is
handled by ifup).
                d) Not deterministic. If I add another daemon in
hotplug that grab and configure interfaces, how does the system chose
if ifplugd should have it first or the other daemon ? Or, maybe the
scripts will change and run net.agent before ifplugd.
        I agree that this goal is hard to acheive in the short term,
knowing the state of ifup, and hotplug is an acceptable short term
solution. But, now that Thomas is on the case, I think we can make
progress.

        Have fun...

        Jean


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to