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 24test "x$AVAHI_INTERFACE" != "x" 25 26# Command line arguments: 27# $1 "+" if a new DNS server was found, "-" if one was removed 28# $2 DNS Server address 29# $3 interface index where this server was found on 30# $4 protocol number where this server was found on 31 32# Available environment variables: 33# 34# $AVAHI_INTERFACE The interface name where this DNS server was found on 35# $AVAHI_INTERFACE_DNS_SERVERS A whitespace seperated list of DNS servers on $AVAHI_INTERFACE 36# $AVAHI_DNS_SERVERS The complete list of all DNS servers found on all interfaces 37 38if [ -x /sbin/netconfig ]; then 39 # SUSE method on 11.1+ 40 if [ -n "$AVAHI_INTERFACE_DNS_SERVERS" ]; then 41 /sbin/netconfig modify -s avahi -i "$AVAHI_INTERFACE" <<-EOF 42 INTERFACE='$AVAHI_INTERFACE' 43 DNSSERVERS='$AVAHI_INTERFACE_DNS_SERVERS' 44 EOF 45 else 46 /sbin/netconfig remove -s avahi -i "$AVAHI_INTERFACE" 47 fi 48elif [ -x /sbin/modify_resolvconf ] ; then 49 # method for SUSE <= 11.0 50 if [ -n "$AVAHI_DNS_SERVERS" ]; then 51 /sbin/modify_resolvconf modify -s avahi -t - -p avahi-dnsconfd -n "$AVAHI_DNS_SERVERS" <<-EOF 52 if you don't like avahi to update your Nameservers 53 disable the avahi-dnsconfd init script 54 EOF 55 else 56 /sbin/modify_resolvconf restore -s avahi 57 fi 58elif [ -x /sbin/resolvconf ] ; then 59 60 # We have Debian's resolvconf tool 61 62 if [ "x$AVAHI_INTERFACE_DNS_SERVERS" = "x" ] ; then 63 /sbin/resolvconf -d "$AVAHI_INTERFACE.avahi" 64 else 65 for n in $AVAHI_INTERFACE_DNS_SERVERS ; do 66 echo "nameserver $n" 67 done | /sbin/resolvconf -a "$AVAHI_INTERFACE.avahi" 68 fi 69else 70 71 # No resolvconf tool available 72 73 if [ "x$AVAHI_DNS_SERVERS" = "x" ] ; then 74 test -f /etc/resolv.conf.avahi && mv /etc/resolv.conf.avahi /etc/resolv.conf 75 else 76 test -f /etc/resolv.conf.avahi || mv /etc/resolv.conf /etc/resolv.conf.avahi 77 78 for n in $AVAHI_DNS_SERVERS ; do 79 echo "nameserver $n" 80 done > /etc/resolv.conf 81 fi 82fi 83