diff options
Diffstat (limited to 'avahi-autoipd/avahi-autoipd.action')
-rwxr-xr-x | avahi-autoipd/avahi-autoipd.action | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/avahi-autoipd/avahi-autoipd.action b/avahi-autoipd/avahi-autoipd.action new file mode 100755 index 0000000..45ce1b5 --- /dev/null +++ b/avahi-autoipd/avahi-autoipd.action @@ -0,0 +1,77 @@ +#!/bin/sh + +# $Id$ +# +# 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 +# License, or (at your option) any later version. +# +# avahi is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY +# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public +# License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with avahi; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +# USA. + +set -e + +# Command line arguments: +# $1 event that happened: +# BIND: Successfully claimed address +# CONFLICT: An IP address conflict happened +# UNBIND: The IP address is no longer needed +# STOP: The daemon is terminating +# $2 interface name +# $3 IP adddress + +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 label "$2:avahi" scope link dev "$2" + ;; + + CONFLICT|UNBIND|STOP) + ip addr del "$3"/16 label "$2:avahi" scope link dev "$2" + ;; + + *) + echo "Unknown event $1" >&2 + exit 1 + ;; + esac + +elif [ -x /bin/ifconfig -o -x /sbin/ifconfig ] ; then + + # We have the old ifconfig tool + + case "$1" in + BIND) + ifconfig "$2" inet "$3" netmask 255.255.0.0 + ;; + + CONFLICT|UNBIND|STOP) + ifconfig "$2" inet 0 + ;; + + *) + echo "Unknown event $1" >&2 + exit 1 + ;; + esac +else + + echo "No network configuration tool found." >&2 + exit 1 + +fi + +exit 0 |