File: /var/lib/dpkg/info/libnss-mdns:arm64.postinst
#!/bin/sh
set -e
log() {
echo "$*"
}
# try to insert mdns entries to the "hosts" line in /etc/nsswitch.conf to
# automatically enable nss-mdns support; do not change the configuration if the
# "hosts" line already references some mdns lookups
insert_mdns() {
log "Checking NSS setup..."
# abort if /etc/nsswitch.conf does not exist
if ! [ -e /etc/nsswitch.conf ]; then
log "Could not find /etc/nsswitch.conf."
return
fi
perl -i -pe '
sub insert {
# this also splits on tab
my @bits=split(" ", shift);
# do not break configuration if the "hosts" line already references
# mdns
if (grep { $_ eq "mdns4_minimal" || $_ eq "mdns4"
|| $_ eq "mdns" || $_ eq "mdns_minimal"
|| $_ eq "mdns6" || $_ eq "mdns6_minimal"} @bits) {
return join " ", @bits;
}
# change "dns" or "resolve", whichever comes first, into
# "mdns4_minimal [NOTFOUND=return] dns|resolve"
foreach my $bit (@bits) {
if ($bit eq "dns" || $bit eq "resolve") {
$bit = "mdns4_minimal [NOTFOUND=return] $bit";
last;
}
}
return join " ", @bits;
}
s/^(hosts:\s+)(.*)/$1.insert($2)/e;
' /etc/nsswitch.conf
}
action="$1"
if [ configure = "$action" ]; then
if [ -z "$2" ]; then
log "First installation detected..."
# first install: setup the recommended configuration (unless
# nsswitch.conf already contains mdns entries)
insert_mdns
else
# upgrade
version="$2"
if dpkg --compare-versions "$version" lt 0.10-8~; then
log "Re-ordering libnss-mdns before libnss-resolve if necessary (#846944)."
perl -i -pe \
's/(resolve \[!?[A-Za-z=]+\]) (mdns4_minimal \[!?[A-Za-z=]+\])/$2 $1/ if /^hosts:/' \
/etc/nsswitch.conf
fi
fi
fi