Author: jajcus
Date: Sun May  2 14:16:32 2010
New Revision: 11364

Modified:
   rc-scripts/trunk/doc/net-scripts.txt
   rc-scripts/trunk/sysconfig/network
   rc-scripts/trunk/sysconfig/network-scripts/functions.network
   rc-scripts/trunk/sysconfig/network-scripts/ifdown
   rc-scripts/trunk/sysconfig/network-scripts/ifup
   rc-scripts/trunk/sysconfig/network-scripts/ifup-routes
Log:
- support for zeroconf networking (based on information from
  http://avahi.org/wiki/AvahiAutoipd#Routes)


Modified: rc-scripts/trunk/doc/net-scripts.txt
==============================================================================
--- rc-scripts/trunk/doc/net-scripts.txt        (original)
+++ rc-scripts/trunk/doc/net-scripts.txt        Sun May  2 14:16:32 2010
@@ -81,7 +81,7 @@
     GATEWAY=
     ONBOOT=yes|no
     USERCTL=yes|no
-    BOOTPROTO=none|bootp|dhcp|pump
+    BOOTPROTO=none|bootp|dhcp|pump|zeroconf|auto
 
   If BOOTPROTO is not "none", then the only other item that
   must be set is the DEVICE item; all the rest will be determined

Modified: rc-scripts/trunk/sysconfig/network
==============================================================================
--- rc-scripts/trunk/sysconfig/network  (original)
+++ rc-scripts/trunk/sysconfig/network  Sun May  2 14:16:32 2010
@@ -62,3 +62,8 @@
 # enable globally for all network interfaces.
 # bring up from hotplug (udev for example) (default to no)
 #HOTPLUG=yes
+
+# set up Zeroconf routes for communication via/with IPv4ALL link-local
+# addresses
+ZEROCONF=yes
+

Modified: rc-scripts/trunk/sysconfig/network-scripts/functions.network
==============================================================================
--- rc-scripts/trunk/sysconfig/network-scripts/functions.network        
(original)
+++ rc-scripts/trunk/sysconfig/network-scripts/functions.network        Sun May 
 2 14:16:32 2010
@@ -89,7 +89,9 @@
        fi
 
        if [ -z "$DHCP_CLIENT" ]; then
-               if [ -x /sbin/dhcpcd ]; then
+               if [ "$BOOTPROTO" = "zeroconf" -a -x /usr/sbin/avahi-autoipd ]; 
then
+                       DHCP_CLIENT=/usr/sbin/avahi-autoipd
+               elif [ -x /sbin/dhcpcd ]; then
                        DHCP_CLIENT=/sbin/dhcpcd
                elif [ -x /sbin/dhclient ]; then
                        DHCP_CLIENT=/sbin/dhclient
@@ -97,6 +99,8 @@
                        DHCP_CLIENT=/sbin/dhcpxd
                elif [ -x /sbin/pump ]; then
                        DHCP_CLIENT=/sbin/pump
+               elif [ "$BOOTPROTO" = "auto" -a -x /usr/sbin/avahi-autoipd ]; 
then
+                       DHCP_CLIENT=/usr/sbin/avahi-autoipd
                else
                        nls "Can't find a DHCP client."
                        exit 1

Modified: rc-scripts/trunk/sysconfig/network-scripts/ifdown
==============================================================================
--- rc-scripts/trunk/sysconfig/network-scripts/ifdown   (original)
+++ rc-scripts/trunk/sysconfig/network-scripts/ifdown   Sun May  2 14:16:32 2010
@@ -95,6 +95,10 @@
                                fi
                        fi
                        ;;
+                 avahi-autoipd)
+                       $DHCP_CLIENT -k ${DEVICE}
+                       RESULT=$?
+                       ;;
                esac
        fi
 fi

Modified: rc-scripts/trunk/sysconfig/network-scripts/ifup
==============================================================================
--- rc-scripts/trunk/sysconfig/network-scripts/ifup     (original)
+++ rc-scripts/trunk/sysconfig/network-scripts/ifup     Sun May  2 14:16:32 2010
@@ -156,6 +156,9 @@
                                # Can't specify a host with dhclient ?
                                DHCP_ARGS="$DEVICE"
                                ;;
+                         avahi-autoipd)
+                               DHCP_ARGS="-D $DEVICE"
+                               ;;
                        esac
                fi
                DHCP_ARGS="$DHCP_OPTIONS $DHCP_ARGS"

Modified: rc-scripts/trunk/sysconfig/network-scripts/ifup-routes
==============================================================================
--- rc-scripts/trunk/sysconfig/network-scripts/ifup-routes      (original)
+++ rc-scripts/trunk/sysconfig/network-scripts/ifup-routes      Sun May  2 
14:16:32 2010
@@ -22,3 +22,29 @@
        fi
        /sbin/ip route add $args dev $REALDEVICE
 done
+
+
+# based on information from http://avahi.org/wiki/AvahiAutoipd#Routes
+if is_yes "$ZEROCONF" && ! /sbin/ip link show dev $REALDEVICE | grep -q 
POINTOPOINT ; then
+       # metric based on device ifindex, so the same route may be added to
+       # multiple devices. Big, so it won't conflict with anything else.
+       if [ -f /sys/class/net/$REALDEVICE/ifindex ] ; then
+               metric="$(cat /sys/class/net/$REALDEVICE/ifindex)"
+               metric=$(($metric + 1000))
+       else
+               metric=1000
+       fi
+
+       # default route in default table, so it won't override default
+       # route set by other means
+       /sbin/ip route add default metric $metric dev $REALDEVICE table default
+
+       # add 169.254.0.0/16 route if not already present on the device
+       current=$(/sbin/ip route show 169.254.0.0/16 dev $REALDEVICE)
+       if [ -z "$current" ] ; then
+               /sbin/ip route add 169.254.0.0/16 metric $metric dev $REALDEVICE
+       fi
+
+       unset metric
+       unset current
+fi
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to