From f10b82b26456f44d03d0c28d93c5118b859d3891 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 12 Apr 2007 18:57:31 +0000 Subject: port avahi-autoipd to FreeBSD (original patch from Bruce M Simpson) git-svn-id: file:///home/lennart/svn/public/avahi/trunk@1402 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe --- avahi-autoipd/avahi-autoipd.action.linux | 78 ++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100755 avahi-autoipd/avahi-autoipd.action.linux (limited to 'avahi-autoipd/avahi-autoipd.action.linux') diff --git a/avahi-autoipd/avahi-autoipd.action.linux b/avahi-autoipd/avahi-autoipd.action.linux new file mode 100755 index 0000000..27f00bb --- /dev/null +++ b/avahi-autoipd/avahi-autoipd.action.linux @@ -0,0 +1,78 @@ +#!/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 brd 169.254.255.255 label "$2:avahi" scope link dev "$2" + ;; + + CONFLICT|UNBIND|STOP) + ip addr del "$3"/16 brd 169.254.255.255 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:3" inet "$3" netmask 255.255.0.0 broadcast 169.254.255.255 up + ;; + + CONFLICT|STOP|UNBIND) + ifconfig "$2:3" down + ;; + + *) + echo "Unknown event $1" >&2 + exit 1 + ;; + esac + +else + + echo "No network configuration tool found." >&2 + exit 1 + +fi + +exit 0 -- cgit