diff options
author | Lennart Poettering <lennart@poettering.net> | 2006-08-31 19:48:42 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2006-08-31 19:48:42 +0000 |
commit | 7bf6b7b95b7c3327000794a24e104242598a9f3f (patch) | |
tree | d2e6c8597febe4a21019a04906a098e2be9d5c34 /avahi-autoipd/avahi-autoipd.action | |
parent | 9d709a294b81066a0942a7a642df1b3d4940ad26 (diff) |
add support for interface configuration with user supplied event script
git-svn-id: file:///home/lennart/svn/public/avahi/trunk@1301 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe
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 |