#!/bin/sh -e

# this variable is only set if the usepeerdns pppd option is being used
[ "$USEPEERDNS" ] || exit 0

# exit if the resolvconf package is installed
[ -x /sbin/resolvconf ] && exit 0

# create the file if it does not exist
if ! [ -e /etc/resolv.conf ]; then
  : > /etc/resolv.conf
fi

# follow any symlink to find the real file
REALRESOLVCONF=$(readlink --canonicalize /etc/resolv.conf)

# merge the new nameservers with the other options from the old configuration
{
  cat /etc/ppp/resolv.conf
  grep --invert-match '^nameserver[[:space:]]' "$REALRESOLVCONF" || true
} > "$REALRESOLVCONF.tmp"

# backup the old configuration and install the new one
cp -a "$REALRESOLVCONF" "$REALRESOLVCONF.pppd-backup"
mv -f "$REALRESOLVCONF.tmp" "$REALRESOLVCONF"

# tell nscd that the file has changed
[ -x /usr/sbin/nscd ] && /usr/sbin/nscd -i hosts || true

exit 0

