1#!/bin/sh
2
3# $Id$
4#
5# This file is part of avahi.
6# 
7# avahi is free software; you can redistribute it and/or modify it
8# under the terms of the GNU Lesser General Public License as
9# published by the Free Software Foundation; either version 2 of the
10# License, or (at your option) any later version.
11#
12# avahi is distributed in the hope that it will be useful, but WITHOUT
13# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public
15# License for more details.
16#
17# You should have received a copy of the GNU Lesser General Public
18# License along with avahi; if not, write to the Free Software
19# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
20# USA.
21
22set -e
23
24# Command line arguments:
25#   $1 event that happened:
26#          BIND:     Successfully claimed address
27#          CONFLICT: An IP address conflict happened
28#          UNBIND:   The IP address is no longer needed
29#          STOP:     The daemon is terminating
30#   $2 interface name
31#   $3 IP adddress
32
33if [ -x /bin/ip -o -x /sbin/ip ] ; then
34
35    # We have the Linux ip tool from the iproute package
36
37    case "$1" in
38        BIND)
39            ip addr add "$3"/16 brd 169.254.255.255 label "$2:avahi" scope link dev "$2" 
40            ;;
41
42        CONFLICT|UNBIND|STOP)
43            ip addr del "$3"/16 brd 169.254.255.255 label "$2:avahi" scope link dev "$2" 
44            ;;
45
46        *)
47            echo "Unknown event $1" >&2
48            exit 1
49            ;;
50    esac
51
52elif [ -x /bin/ifconfig -o -x /sbin/ifconfig ] ; then
53
54    # We have the old ifconfig tool
55
56    case "$1" in
57        BIND)
58            ifconfig "$2:3" inet "$3" netmask 255.255.0.0 broadcast 169.254.255.255 up
59            ;;
60
61        CONFLICT|STOP|UNBIND)
62            ifconfig "$2:3" down
63            ;;
64
65        *)
66            echo "Unknown event $1" >&2
67            exit 1
68            ;;
69    esac
70
71else
72
73    echo "No network configuration tool found." >&2
74    exit 1
75
76fi
77
78exit 0
79