1#!/bin/sh 2 3# This file is part of avahi. 4# 5# avahi is free software; you can redistribute it and/or modify it 6# under the terms of the GNU Lesser General Public License as 7# published by the Free Software Foundation; either version 2 of the 8# License, or (at your option) any later version. 9# 10# avahi is distributed in the hope that it will be useful, but WITHOUT 11# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 12# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 13# License for more details. 14# 15# You should have received a copy of the GNU Lesser General Public 16# License along with avahi; if not, write to the Free Software 17# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 18# USA. 19 20set -e 21 22test "x$AVAHI_INTERFACE" != "x" 23 24# Command line arguments: 25# $1 "+" if a new DNS server was found, "-" if one was removed 26# $2 DNS Server address 27# $3 interface index where this server was found on 28# $4 protocol number where this server was found on 29 30# Available environment variables: 31# 32# $AVAHI_INTERFACE The interface name where this DNS server was found on 33# $AVAHI_INTERFACE_DNS_SERVERS A whitespace seperated list of DNS servers on $AVAHI_INTERFACE 34# $AVAHI_DNS_SERVERS The complete list of all DNS servers found on all interfaces 35 36if [ -x /sbin/netconfig ]; then 37 # SUSE method on 11.1+ 38 if [ -n "$AVAHI_INTERFACE_DNS_SERVERS" ]; then 39 /sbin/netconfig modify -s avahi -i "$AVAHI_INTERFACE" <<-EOF 40 INTERFACE='$AVAHI_INTERFACE' 41 DNSSERVERS='$AVAHI_INTERFACE_DNS_SERVERS' 42 EOF 43 else 44 /sbin/netconfig remove -s avahi -i "$AVAHI_INTERFACE" 45 fi 46elif [ -x /sbin/modify_resolvconf ] ; then 47 # method for SUSE <= 11.0 48 if [ -n "$AVAHI_DNS_SERVERS" ]; then 49 /sbin/modify_resolvconf modify -s avahi -t - -p avahi-dnsconfd -n "$AVAHI_DNS_SERVERS" <<-EOF 50 if you don't like avahi to update your Nameservers 51 disable the avahi-dnsconfd init script 52 EOF 53 else 54 /sbin/modify_resolvconf restore -s avahi 55 fi 56elif [ -x /sbin/resolvconf ] ; then 57 58 # We have Debian's resolvconf tool 59 60 if [ "x$AVAHI_INTERFACE_DNS_SERVERS" = "x" ] ; then 61 /sbin/resolvconf -d "$AVAHI_INTERFACE.avahi" 62 else 63 for n in $AVAHI_INTERFACE_DNS_SERVERS ; do 64 echo "nameserver $n" 65 done | /sbin/resolvconf -a "$AVAHI_INTERFACE.avahi" 66 fi 67else 68 69 # No resolvconf tool available 70 71 if [ "x$AVAHI_DNS_SERVERS" = "x" ] ; then 72 test -f /etc/resolv.conf.avahi && mv /etc/resolv.conf.avahi /etc/resolv.conf 73 else 74 test -f /etc/resolv.conf.avahi || mv /etc/resolv.conf /etc/resolv.conf.avahi 75 76 for n in $AVAHI_DNS_SERVERS ; do 77 echo "nameserver $n" 78 done > /etc/resolv.conf 79 fi 80fi 81