File: libnss-resolve.postinst

package info (click to toggle)
systemd 232-25+deb9u12
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 46,192 kB
  • sloc: ansic: 290,590; xml: 49,217; makefile: 5,503; sh: 4,031; python: 2,596; perl: 1,838
file content (55 lines) | stat: -rw-r--r-- 1,859 bytes parent folder | download | duplicates (3)
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
#!/bin/sh
set -e

# This code was taken from libnss-myhostname

# try to insert resolve entries to the "hosts" line in /etc/nsswitch.conf to
# automatically enable libnss-resolve support; do not change the
# configuration if the "hosts" line already references some resolve lookups
insert_nss_entry() {
    echo "Checking NSS setup..."
    # abort if /etc/nsswitch.conf does not exist
    if ! [ -e /etc/nsswitch.conf ]; then
        echo "Could not find /etc/nsswitch.conf."
        return
    fi
    perl -i -pe '
        sub insert {
            my $line = shift;
            # this also splits on tab
            my @bits=split(" ", $line);
            # do not break configuration if the "hosts" line already references
            # resolve
            if (grep { $_ eq "resolve"} @bits) {
                return $line;
            }
            # add resolve before dns
            return join " ", map {
                $_ eq "dns" ? ("resolve [!UNAVAIL=return]", "$_") : $_
            } @bits;
        }
        s/^(hosts:\s+)(.*)/$1.insert($2)/e;
    ' /etc/nsswitch.conf
}

if [ "$1" = configure ] && [ -z "$2" ]; then
    echo "First installation detected..."
    # first install: setup the recommended configuration (unless
    # nsswitch.conf already contains resolve entries)
    insert_nss_entry
    # ... and enable resolved
    systemctl enable systemd-resolved.service
    if [ -d /run/systemd/system ]; then
        deb-systemd-invoke start systemd-resolved.service || true
    fi
fi

# Fix nsswitch action on upgrades
if [ "$1" = configure ] && dpkg --compare-versions "$2" lt-nl "231-10"; then
    if ! grep -q '^hosts:.*resolve[[:space:]]*\[' /etc/nsswitch.conf; then
        echo "Adjusting 'resolv' entry in /etc/nsswitch.conf.."
        sed -i '/^hosts:/ { s/resolve/& [!UNAVAIL=return]/}' /etc/nsswitch.conf
    fi
fi

#DEBHELPER#