File: avahi-dnsconfd.action

package info (click to toggle)
avahi 0.7-4
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 8,956 kB
  • sloc: ansic: 40,180; sh: 6,285; xml: 4,433; cs: 2,185; makefile: 1,706; python: 321; cpp: 222
file content (80 lines) | stat: -rwxr-xr-x 2,743 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#!/bin/sh

# 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

test "x$AVAHI_INTERFACE" != "x"

# Command line arguments:
#   $1 "+" if a new DNS server was found, "-" if one was removed
#   $2 DNS Server address
#   $3 interface index where this server was found on
#   $4 protocol number where this server was found on

# Available environment variables:
#
#   $AVAHI_INTERFACE               The interface name where this DNS server was found on
#   $AVAHI_INTERFACE_DNS_SERVERS   A whitespace seperated list of DNS servers on $AVAHI_INTERFACE
#   $AVAHI_DNS_SERVERS             The complete list of all DNS servers found on all interfaces

if [ -x /sbin/netconfig ]; then
    # SUSE method on 11.1+
    if [ -n "$AVAHI_INTERFACE_DNS_SERVERS" ]; then
	/sbin/netconfig modify -s avahi -i "$AVAHI_INTERFACE" <<-EOF
	INTERFACE='$AVAHI_INTERFACE'
	DNSSERVERS='$AVAHI_INTERFACE_DNS_SERVERS'
	EOF
    else
	/sbin/netconfig remove -s avahi -i "$AVAHI_INTERFACE"
    fi
elif [ -x /sbin/modify_resolvconf ] ; then
    # method for SUSE <= 11.0
    if [ -n "$AVAHI_DNS_SERVERS" ]; then
	/sbin/modify_resolvconf modify -s avahi -t - -p avahi-dnsconfd -n "$AVAHI_DNS_SERVERS" <<-EOF
	if you don't like avahi to update your Nameservers
	disable the avahi-dnsconfd init script
	EOF
    else
	/sbin/modify_resolvconf restore -s avahi
    fi
elif [ -x /sbin/resolvconf ] ; then

    # We have Debian's resolvconf tool

    if [ "x$AVAHI_INTERFACE_DNS_SERVERS" = "x" ] ; then
        /sbin/resolvconf -d "$AVAHI_INTERFACE.avahi"
    else
        for n in $AVAHI_INTERFACE_DNS_SERVERS ; do 
            echo "nameserver $n"
        done | /sbin/resolvconf -a "$AVAHI_INTERFACE.avahi"
    fi
else

    # No resolvconf tool available

    if [ "x$AVAHI_DNS_SERVERS" = "x" ] ; then
        test -f /etc/resolv.conf.avahi && mv /etc/resolv.conf.avahi /etc/resolv.conf
    else
        test -f /etc/resolv.conf.avahi || mv /etc/resolv.conf /etc/resolv.conf.avahi

        for n in $AVAHI_DNS_SERVERS ; do 
            echo "nameserver $n"
        done > /etc/resolv.conf
    fi
fi