]> git.meshlink.io Git - catta/commitdiff
avahi-autopid: set metric for default route in action script
authorLennart Poettering <lennart@poettering.net>
Fri, 25 Jun 2010 18:59:47 +0000 (20:59 +0200)
committerLennart Poettering <lennart@poettering.net>
Fri, 25 Jun 2010 18:59:47 +0000 (20:59 +0200)
avahi-autoipd/Makefile.am
avahi-autoipd/avahi-autoipd.action.linux

index 1911a805a32ee30fe038a06bcc36236f3a41f9b2..dc43b54cf8f3cd5d886b0fd16add1befa26c879b 100644 (file)
@@ -52,10 +52,10 @@ nodist_pkgsysconf_SCRIPTS = avahi-autoipd.action
 
 if TARGET_FREEBSD
 avahi-autoipd.action: avahi-autoipd.action.bsd
-       cp $< $@
+       $(AM_V_GEN)cp $< $@
 else
 avahi-autoipd.action: avahi-autoipd.action.linux
-       cp $< $@
+       $(AM_V_GEN)cp $< $@
 endif
 
 if TARGET_DEBIAN
@@ -63,11 +63,11 @@ if TARGET_DEBIAN
 noinst_SCRIPTS = dhclient-enter-hook dhclient-exit-hook
 
 dhclient-enter-hook: dhclient-enter-hook.in
-       sed -e 's,@sbindir\@,$(sbindir),g' $< > $@
+       $(AM_V_GEN)sed -e 's,@sbindir\@,$(sbindir),g' $< > $@ && \
        chmod +x $@
 
 dhclient-exit-hook: dhclient-exit-hook.in
-       sed -e 's,@sbindir\@,$(sbindir),g' $< > $@
+       $(AM_V_GEN)sed -e 's,@sbindir\@,$(sbindir),g' $< > $@ && \
        chmod +x $@
 
 BUILD = dhclient-exit-hook dhclient-enter-hook
index cc9238c1303abb2ae528483802767cbd33daa5b6..c2db9942c32c191c665c6e7c7d0be287ea0a0967 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 # This file is part of avahi.
-# 
+#
 # avahi is free software; you can redistribute it and/or modify it
 # under the terms of the GNU Lesser General Public License as
 # published by the Free Software Foundation; either version 2 of the
@@ -28,17 +28,26 @@ set -e
 #   $2 interface name
 #   $3 IP adddress
 
+PATH="$PATH:/usr/bin:/usr/sbin:/bin:/sbin"
+
+# Use a different metric for each interface, so that we can set
+# identical routes to multiple interfaces.
+
+METRIC=$((1000 + `cat "/sys/class/net/$2/ifindex" 2>/dev/null || echo 0`))
+
 if [ -x /bin/ip -o -x /sbin/ip ] ; then
 
     # We have the Linux ip tool from the iproute package
 
     case "$1" in
         BIND)
-            ip addr add "$3"/16 brd 169.254.255.255 label "$2:avahi" scope link dev "$2" 
+            ip addr add "$3"/16 brd 169.254.255.255 label "$2:avahi" scope link dev "$2"
+            ip route add default dev "$2" metric "$METRIC" scope link ||:
             ;;
 
         CONFLICT|UNBIND|STOP)
-            ip addr del "$3"/16 brd 169.254.255.255 label "$2:avahi" scope link dev "$2" 
+            ip route del default dev "$2" metric "$METRIC" scope link ||:
+            ip addr del "$3"/16 brd 169.254.255.255 label "$2:avahi" scope link dev "$2"
             ;;
 
         *)
@@ -54,9 +63,11 @@ elif [ -x /bin/ifconfig -o -x /sbin/ifconfig ] ; then
     case "$1" in
         BIND)
             ifconfig "$2:avahi" inet "$3" netmask 255.255.0.0 broadcast 169.254.255.255 up
+            route add default dev "$2:avahi" metric "$METRIC" ||:
             ;;
 
         CONFLICT|STOP|UNBIND)
+            route del default dev "$2:avahi" metric "$METRIC" ||:
             ifconfig "$2:avahi" down
             ;;