MFV r298167, r300962, r303048:
openresolv: update to version 3.8.1. Among the new features it attempts to support alternative init systems. MFC after: 1 month
This commit is contained in:
commit
3f2a60a137
@ -1,5 +1,4 @@
|
|||||||
PKG= openresolv
|
PKG= openresolv
|
||||||
VERSION= 3.7.3
|
|
||||||
|
|
||||||
# Nasty hack so that make clean works without configure being run
|
# Nasty hack so that make clean works without configure being run
|
||||||
_CONFIG_MK!= test -e config.mk && echo config.mk || echo config-null.mk
|
_CONFIG_MK!= test -e config.mk && echo config.mk || echo config-null.mk
|
||||||
@ -10,14 +9,12 @@ SBINDIR?= /sbin
|
|||||||
SYSCONFDIR?= /etc
|
SYSCONFDIR?= /etc
|
||||||
LIBEXECDIR?= /libexec/resolvconf
|
LIBEXECDIR?= /libexec/resolvconf
|
||||||
VARDIR?= /var/run/resolvconf
|
VARDIR?= /var/run/resolvconf
|
||||||
RCDIR?= /etc/rc.d
|
|
||||||
RESTARTCMD?= if ${RCDIR}/\1 status >/dev/null 2>\&1; then \
|
|
||||||
${RCDIR}/\1 restart; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
INSTALL?= install
|
INSTALL?= install
|
||||||
SED?= sed
|
SED?= sed
|
||||||
|
|
||||||
|
VERSION!= ${SED} -n 's/OPENRESOLV_VERSION="\(.*\)".*/\1/p' resolvconf.in
|
||||||
|
|
||||||
BINMODE?= 0755
|
BINMODE?= 0755
|
||||||
DOCMODE?= 0644
|
DOCMODE?= 0644
|
||||||
MANMODE?= 0444
|
MANMODE?= 0444
|
||||||
@ -33,7 +30,9 @@ SED_SYSCONFDIR= -e 's:@SYSCONFDIR@:${SYSCONFDIR}:g'
|
|||||||
SED_LIBEXECDIR= -e 's:@LIBEXECDIR@:${LIBEXECDIR}:g'
|
SED_LIBEXECDIR= -e 's:@LIBEXECDIR@:${LIBEXECDIR}:g'
|
||||||
SED_VARDIR= -e 's:@VARDIR@:${VARDIR}:g'
|
SED_VARDIR= -e 's:@VARDIR@:${VARDIR}:g'
|
||||||
SED_RCDIR= -e 's:@RCDIR@:${RCDIR}:g'
|
SED_RCDIR= -e 's:@RCDIR@:${RCDIR}:g'
|
||||||
SED_RESTARTCMD= -e 's:@RESTARTCMD \(.*\)@:${RESTARTCMD}:g'
|
SED_RESTARTCMD= -e 's:@RESTARTCMD@:${RESTARTCMD}:g'
|
||||||
|
SED_RCDIR= -e 's:@RCDIR@:${RCDIR}:g'
|
||||||
|
SED_STATUSARG= -e 's:@STATUSARG@:${STATUSARG}:g'
|
||||||
|
|
||||||
DISTPREFIX?= ${PKG}-${VERSION}
|
DISTPREFIX?= ${PKG}-${VERSION}
|
||||||
DISTFILEGZ?= ${DISTPREFIX}.tar.gz
|
DISTFILEGZ?= ${DISTPREFIX}.tar.gz
|
||||||
@ -44,9 +43,10 @@ FOSSILID?= current
|
|||||||
|
|
||||||
all: ${TARGET}
|
all: ${TARGET}
|
||||||
|
|
||||||
.in:
|
.in: Makefile ${CONFIG_MK}
|
||||||
${SED} ${SED_SBINDIR} ${SED_SYSCONFDIR} ${SED_LIBEXECDIR} \
|
${SED} ${SED_SBINDIR} ${SED_SYSCONFDIR} ${SED_LIBEXECDIR} \
|
||||||
${SED_VARDIR} ${SED_RCDIR} ${SED_RESTARTCMD} \
|
${SED_VARDIR} \
|
||||||
|
${SED_RCDIR} ${SED_RESTARTCMD} ${SED_RCDIR} ${SED_STATUSARG} \
|
||||||
$< > $@
|
$< > $@
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
109
contrib/openresolv/configure
vendored
109
contrib/openresolv/configure
vendored
@ -8,6 +8,7 @@ HOST=
|
|||||||
TARGET=
|
TARGET=
|
||||||
RESTARTCMD=
|
RESTARTCMD=
|
||||||
RCDIR=
|
RCDIR=
|
||||||
|
STATUSARG=
|
||||||
|
|
||||||
for x do
|
for x do
|
||||||
opt=${x%%=*}
|
opt=${x%%=*}
|
||||||
@ -33,6 +34,8 @@ for x do
|
|||||||
--target) TARGET=$var;;
|
--target) TARGET=$var;;
|
||||||
--libdir) LIBDIR=$var;;
|
--libdir) LIBDIR=$var;;
|
||||||
--restartcmd) RESTARTCMD=$var;;
|
--restartcmd) RESTARTCMD=$var;;
|
||||||
|
--rcdir) RCDIR=$var;;
|
||||||
|
--statusarg) STATUSARG=$var;;
|
||||||
--includedir) eval INCLUDEDIR="$INCLUDEDIR${INCLUDEDIR:+ }$var";;
|
--includedir) eval INCLUDEDIR="$INCLUDEDIR${INCLUDEDIR:+ }$var";;
|
||||||
--datadir|--infodir) ;; # ignore autotools
|
--datadir|--infodir) ;; # ignore autotools
|
||||||
--disable-maintainer-mode|--disable-dependency-tracking) ;;
|
--disable-maintainer-mode|--disable-dependency-tracking) ;;
|
||||||
@ -117,7 +120,17 @@ echo "Configuring openresolv for ... $OS"
|
|||||||
rm -rf $CONFIG_MK
|
rm -rf $CONFIG_MK
|
||||||
echo "# $OS" >$CONFIG_MK
|
echo "# $OS" >$CONFIG_MK
|
||||||
|
|
||||||
for x in SYSCONFDIR SBINDIR LIBEXECDIR VARDIR MANDIR; do
|
# On FreeBSD, /etc/init.d/foo status returns 0 if foo is not enabled
|
||||||
|
# regardless of if it's not running.
|
||||||
|
# So we force onestatus to work around this silly bug.
|
||||||
|
if [ -z "$STATUSARG" ]; then
|
||||||
|
case "$OS" in
|
||||||
|
freebsd*) STATUSARG="onestatus";;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
for x in SYSCONFDIR SBINDIR LIBEXECDIR VARDIR MANDIR RESTARTCMD RCDIR STATUSARG
|
||||||
|
do
|
||||||
eval v=\$$x
|
eval v=\$$x
|
||||||
# Make files look nice for import
|
# Make files look nice for import
|
||||||
l=$((10 - ${#x}))
|
l=$((10 - ${#x}))
|
||||||
@ -126,96 +139,6 @@ for x in SYSCONFDIR SBINDIR LIBEXECDIR VARDIR MANDIR; do
|
|||||||
echo "$x=$t $v" >>$CONFIG_MK
|
echo "$x=$t $v" >>$CONFIG_MK
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ -z "$RESTARTCMD" ]; then
|
|
||||||
printf "Checking for systemd ... "
|
|
||||||
if [ -x /bin/systemctl ]; then
|
|
||||||
RESTARTCMD="/bin/systemctl try-restart \1"
|
|
||||||
echo "yes"
|
|
||||||
elif [ -x /usr/bin/systemctl ]; then
|
|
||||||
RESTARTCMD="/usr/bin/systemctl try-restart \1"
|
|
||||||
echo "yes"
|
|
||||||
else
|
|
||||||
echo "no"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Arch upgraded to systemd, so this check has to be just after systemd
|
|
||||||
# but higher than the others
|
|
||||||
if [ -z "$RESTARTCMD" ]; then
|
|
||||||
printf "Checking for Arch ... "
|
|
||||||
if [ -e /etc/arch-release -a -d /etc/rc.d ]; then
|
|
||||||
RCDIR=/etc/rc.d
|
|
||||||
RESTARTCMD="[ -e /var/run/daemons/\1 ] \&\& /etc/rc.d/\1 restart"
|
|
||||||
echo "yes"
|
|
||||||
else
|
|
||||||
echo "no"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$RESTARTCMD" ]; then
|
|
||||||
printf "Checking for OpenRC ... "
|
|
||||||
if [ -x /sbin/rc-service ]; then
|
|
||||||
RESTARTCMD="if /sbin/rc-service -e \1; then /sbin/rc-service \1 -- -Ds restart; fi"
|
|
||||||
echo "yes"
|
|
||||||
else
|
|
||||||
echo "no"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if [ -z "$RESTARTCMD" ]; then
|
|
||||||
printf "Checking for invoke-rc.d ... "
|
|
||||||
if [ -x /usr/sbin/invoke-rc.d ]; then
|
|
||||||
RCDIR=/etc/init.d
|
|
||||||
RESTARTCMD="if /usr/sbin/invoke-rc.d --quiet \1 status >/dev/null 2>\&1; then /usr/sbin/invoke-rc.d \1 restart; fi"
|
|
||||||
echo "yes"
|
|
||||||
else
|
|
||||||
echo "no"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if [ -z "$RESTARTCMD" ]; then
|
|
||||||
printf "Checking for service ... "
|
|
||||||
if [ -x /sbin/service ]; then
|
|
||||||
RCDIR=/etc/init.d
|
|
||||||
RESTARTCMD="if /sbin/service \1; then /sbin/service \1 restart; fi"
|
|
||||||
echo "yes"
|
|
||||||
else
|
|
||||||
echo "no"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if [ -z "$RESTARTCMD" ]; then
|
|
||||||
printf "Checking for runit... "
|
|
||||||
if [ -x /bin/sv ]; then
|
|
||||||
RESTARTCMD="/bin/sv try-restart \1"
|
|
||||||
echo "yes"
|
|
||||||
elif [ -x /usr/bin/sv ]; then
|
|
||||||
RESTARTCMD="/usr/bin/sv try-restart \1"
|
|
||||||
echo "yes"
|
|
||||||
else
|
|
||||||
echo "no"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
if [ -z "$RESTARTCMD" ]; then
|
|
||||||
for x in /etc/init.d/rc.d /etc/rc.d /etc/init.d; do
|
|
||||||
printf "Checking for $x ... "
|
|
||||||
if [ -d $x ]; then
|
|
||||||
RCDIR=$x
|
|
||||||
RESTARTCMD="if $x/\1 status >/dev/null 2>\&1; then $x/\1 restart; fi"
|
|
||||||
echo "yes"
|
|
||||||
break
|
|
||||||
else
|
|
||||||
echo "no"
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$RESTARTCMD" ]; then
|
|
||||||
echo "$0: WARNING: No means of interacting with system services detected!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "RCDIR= $RCDIR" >>$CONFIG_MK
|
|
||||||
# Work around bug in the dash shell as "echo 'foo \1'" does bad things
|
|
||||||
printf "%s\n" "RESTARTCMD= $RESTARTCMD" >>$CONFIG_MK
|
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo " SYSCONFDIR = $SYSCONFDIR"
|
echo " SYSCONFDIR = $SYSCONFDIR"
|
||||||
echo " SBINDIR = $SBINDIR"
|
echo " SBINDIR = $SBINDIR"
|
||||||
@ -223,3 +146,7 @@ echo " LIBEXECDIR = $LIBEXECDIR"
|
|||||||
echo " VARDIR = $RUNDIR"
|
echo " VARDIR = $RUNDIR"
|
||||||
echo " MANDIR = $MANDIR"
|
echo " MANDIR = $MANDIR"
|
||||||
echo
|
echo
|
||||||
|
echo " RESTARTCMD = $RESTARTCMD"
|
||||||
|
echo " RCDIR = $RCDIR"
|
||||||
|
echo " STATUSARG = $STATUSARG"
|
||||||
|
echo
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# Copyright (c) 2007-2012 Roy Marples
|
# Copyright (c) 2007-2016 Roy Marples
|
||||||
# All rights reserved
|
# All rights reserved
|
||||||
|
|
||||||
# dnsmasq subscriber for resolvconf
|
# dnsmasq subscriber for resolvconf
|
||||||
@ -37,7 +37,6 @@ NL="
|
|||||||
[ -s "$dnsmasq_pid" ] || dnsmasq_pid=/var/run/dnsmasq/dnsmasq.pid
|
[ -s "$dnsmasq_pid" ] || dnsmasq_pid=/var/run/dnsmasq/dnsmasq.pid
|
||||||
[ -s "$dnsmasq_pid" ] || unset dnsmasq_pid
|
[ -s "$dnsmasq_pid" ] || unset dnsmasq_pid
|
||||||
: ${dnsmasq_service:=dnsmasq}
|
: ${dnsmasq_service:=dnsmasq}
|
||||||
: ${dnsmasq_restart:=@RESTARTCMD ${dnsmasq_service}@}
|
|
||||||
newconf="# Generated by resolvconf$NL"
|
newconf="# Generated by resolvconf$NL"
|
||||||
newresolv="$newconf"
|
newresolv="$newconf"
|
||||||
|
|
||||||
@ -180,7 +179,15 @@ if [ -n "$dnsmasq_resolv" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if $changed; then
|
if $changed; then
|
||||||
eval $dnsmasq_restart
|
# dnsmasq does not re-read the configuration file on SIGHUP
|
||||||
|
if [ -n "$dnsmasq_restart" ]; then
|
||||||
|
eval $dnsmasq_restart
|
||||||
|
elif [ -n "$RESTARTCMD" ]; then
|
||||||
|
set -- ${dnsmasq_service}
|
||||||
|
eval $RESTARTCMD
|
||||||
|
else
|
||||||
|
@SBINDIR@/resolvconf -r ${dnsmasq_service}
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
if $dbus; then
|
if $dbus; then
|
||||||
if [ -s "$dnsmasq_pid" ]; then
|
if [ -s "$dnsmasq_pid" ]; then
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# Copyright (c) 2007-2014 Roy Marples
|
# Copyright (c) 2007-2016 Roy Marples
|
||||||
# All rights reserved
|
# All rights reserved
|
||||||
|
|
||||||
# libc subscriber for resolvconf
|
# libc subscriber for resolvconf
|
||||||
@ -97,7 +97,6 @@ elif [ -d "$SYSCONFDIR"/resolvconf ]; then
|
|||||||
fi
|
fi
|
||||||
: ${resolv_conf:=/etc/resolv.conf}
|
: ${resolv_conf:=/etc/resolv.conf}
|
||||||
: ${libc_service:=nscd}
|
: ${libc_service:=nscd}
|
||||||
: ${libc_restart:=@RESTARTCMD ${libc_service}@}
|
|
||||||
: ${list_resolv:=@SBINDIR@/resolvconf -l}
|
: ${list_resolv:=@SBINDIR@/resolvconf -l}
|
||||||
if [ "${resolv_conf_head-x}" = x -a -f "$SYSCONFDIR"/resolv.conf.head ]; then
|
if [ "${resolv_conf_head-x}" = x -a -f "$SYSCONFDIR"/resolv.conf.head ]; then
|
||||||
resolv_conf_head="$(cat "${SYSCONFDIR}"/resolv.conf.head)"
|
resolv_conf_head="$(cat "${SYSCONFDIR}"/resolv.conf.head)"
|
||||||
@ -229,7 +228,14 @@ fi
|
|||||||
|
|
||||||
# Create our resolv.conf now
|
# Create our resolv.conf now
|
||||||
(umask 022; echo "$newconf" >"$resolv_conf")
|
(umask 022; echo "$newconf" >"$resolv_conf")
|
||||||
eval $libc_restart
|
if [ -n "$libc_restart" ]; then
|
||||||
|
eval $libc_restart
|
||||||
|
elif [ -n "$RESTARTCMD" ]; then
|
||||||
|
set -- ${libc_service}
|
||||||
|
eval $RESTARTCMD
|
||||||
|
else
|
||||||
|
@SBINDIR@/resolvconf -r ${libc_service}
|
||||||
|
fi
|
||||||
|
|
||||||
retval=0
|
retval=0
|
||||||
# Notify users of the resolver
|
# Notify users of the resolver
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# Copyright (c) 2007-2012 Roy Marples
|
# Copyright (c) 2007-2016 Roy Marples
|
||||||
# All rights reserved
|
# All rights reserved
|
||||||
|
|
||||||
# named subscriber for resolvconf
|
# named subscriber for resolvconf
|
||||||
@ -35,18 +35,22 @@ NL="
|
|||||||
|
|
||||||
# Platform specific kludges
|
# Platform specific kludges
|
||||||
if [ -z "$named_service" -a -z "$named_restart" -a \
|
if [ -z "$named_service" -a -z "$named_restart" -a \
|
||||||
-d "@RCDIR@" -a ! -x "@RCDIR@"/named ]
|
-d "$RCDIR" -a ! -x "$RCDIR"/named ]
|
||||||
then
|
then
|
||||||
if [ -x "@RCDIR@"/bind9 ]; then
|
if [ -x "$RCDIR"/bind9 ]; then
|
||||||
# Debian and derivatives
|
# Debian and derivatives
|
||||||
named_service=bind9
|
named_service=bind9
|
||||||
elif [ -x "@RCDIR@"/rc.bind ]; then
|
elif [ -x "$RCDIR"/rc.bind ]; then
|
||||||
# Slackware
|
# Slackware
|
||||||
named_service=rc.bind
|
named_service=rc.bind
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
: ${named_service:=named}
|
: ${named_service:=named}
|
||||||
: ${named_restart:=@RESTARTCMD ${named_service}@}
|
|
||||||
|
: ${named_pid:=/var/run/$named_service.pid}
|
||||||
|
[ -s "$named_pid" ] || named_pid=/var/run/$named_service/$named_service.pid
|
||||||
|
[ -s "$named_pid" ] || unset named_pid
|
||||||
|
|
||||||
newoptions="# Generated by resolvconf$NL"
|
newoptions="# Generated by resolvconf$NL"
|
||||||
newzones="$newoptions"
|
newzones="$newoptions"
|
||||||
|
|
||||||
@ -101,6 +105,14 @@ if [ -n "$named_zones" ]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# named does not seem to work with SIGHUP which is a same
|
||||||
if $changed; then
|
if $changed; then
|
||||||
eval $named_restart
|
if [ -n "$named_restart" ]; then
|
||||||
|
eval $named_restart
|
||||||
|
elif [ -n "$RESTARTCMD" ]; then
|
||||||
|
set -- ${named_service}
|
||||||
|
eval $RESTARTCMD
|
||||||
|
else
|
||||||
|
@SBINDIR@/resolvconf -r ${named_service}
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
.\" Copyright (c) 2007-2015 Roy Marples
|
.\" Copyright (c) 2007-2016 Roy Marples
|
||||||
.\" All rights reserved
|
.\" All rights reserved
|
||||||
.\"
|
.\"
|
||||||
.\" Redistribution and use in source and binary forms, with or without
|
.\" Redistribution and use in source and binary forms, with or without
|
||||||
@ -22,7 +22,7 @@
|
|||||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
.\" SUCH DAMAGE.
|
.\" SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd April 27, 2015
|
.Dd May 7, 2016
|
||||||
.Dt RESOLVCONF 8
|
.Dt RESOLVCONF 8
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@ -64,7 +64,7 @@ solves this by letting the daemon send their
|
|||||||
file to
|
file to
|
||||||
.Nm
|
.Nm
|
||||||
via
|
via
|
||||||
.Xr stdin 3
|
.Xr stdin 4
|
||||||
with the argument
|
with the argument
|
||||||
.Fl a Ar interface Ns Op Ar .protocol
|
.Fl a Ar interface Ns Op Ar .protocol
|
||||||
instead of the filesystem.
|
instead of the filesystem.
|
||||||
@ -101,7 +101,7 @@ as private.
|
|||||||
This means that the name servers listed in that
|
This means that the name servers listed in that
|
||||||
.Pa resolv.conf
|
.Pa resolv.conf
|
||||||
are only used for queries against the domain/search listed in the same file.
|
are only used for queries against the domain/search listed in the same file.
|
||||||
This only works when a local resolver other than libc is installed.
|
This only works when a local resolver other than libc is installed.
|
||||||
See
|
See
|
||||||
.Xr resolvconf.conf 5
|
.Xr resolvconf.conf 5
|
||||||
for how to configure
|
for how to configure
|
||||||
@ -125,24 +125,28 @@ file(s) for all the
|
|||||||
on the
|
on the
|
||||||
.Ar interface .
|
.Ar interface .
|
||||||
.Pp
|
.Pp
|
||||||
Here are some more options that
|
Here are some options for the above commands:-
|
||||||
.Nm
|
|
||||||
has:-
|
|
||||||
.Bl -tag -width indent
|
.Bl -tag -width indent
|
||||||
.It Fl I
|
|
||||||
Initialise the state directory
|
|
||||||
.Pa @VARDIR@ .
|
|
||||||
This only needs to be called if the initial system boot sequence does not
|
|
||||||
automatically clean it out; for example the state directory is moved
|
|
||||||
somewhere other than
|
|
||||||
.Pa /var/run .
|
|
||||||
If used, it should only be called once as early in the system boot sequence
|
|
||||||
as possible and before
|
|
||||||
.Nm
|
|
||||||
is used to add interfaces.
|
|
||||||
.It Fl f
|
.It Fl f
|
||||||
Ignore non existant interfaces.
|
Ignore non existent interfaces.
|
||||||
Only really useful for deleting interfaces.
|
Only really useful for deleting interfaces.
|
||||||
|
.It Fl m Ar metric
|
||||||
|
Set the metric of the interface when adding it, default of 0.
|
||||||
|
Lower metrics take precedence.
|
||||||
|
This affects the default order of interfaces when listed.
|
||||||
|
.It Fl p
|
||||||
|
Marks the interface
|
||||||
|
.Pa resolv.conf
|
||||||
|
as private.
|
||||||
|
.It Fl x
|
||||||
|
Mark the interface
|
||||||
|
.Pa resolv.conf
|
||||||
|
as exclusive when adding, otherwise only use the latest exclusive interface.
|
||||||
|
.El
|
||||||
|
.Pp
|
||||||
|
.Nm
|
||||||
|
has some more commands for general usage:-
|
||||||
|
.Bl -tag -width indent
|
||||||
.It Fl i Ar pattern
|
.It Fl i Ar pattern
|
||||||
List the interfaces and protocols, optionally matching
|
List the interfaces and protocols, optionally matching
|
||||||
.Ar pattern ,
|
.Ar pattern ,
|
||||||
@ -157,14 +161,6 @@ If
|
|||||||
.Ar pattern
|
.Ar pattern
|
||||||
is specified then we list the files for the interfaces and protocols
|
is specified then we list the files for the interfaces and protocols
|
||||||
that match it.
|
that match it.
|
||||||
.It Fl m Ar metric
|
|
||||||
Set the metric of the interface when adding it, default of 0.
|
|
||||||
Lower metrics take precedence.
|
|
||||||
This affects the default order of interfaces when listed.
|
|
||||||
.It Fl p
|
|
||||||
Marks the interface
|
|
||||||
.Pa resolv.conf
|
|
||||||
as private.
|
|
||||||
.It Fl u
|
.It Fl u
|
||||||
Force
|
Force
|
||||||
.Nm
|
.Nm
|
||||||
@ -172,15 +168,31 @@ to update all its subscribers.
|
|||||||
.Nm
|
.Nm
|
||||||
does not update the subscribers when adding a resolv.conf that matches
|
does not update the subscribers when adding a resolv.conf that matches
|
||||||
what it already has for that interface.
|
what it already has for that interface.
|
||||||
.It Fl x
|
|
||||||
Mark the interface
|
|
||||||
.Pa resolv.conf
|
|
||||||
as exclusive when adding, otherwise only use the latest exclusive interface.
|
|
||||||
.El
|
.El
|
||||||
.Pp
|
.Pp
|
||||||
.Nm
|
.Nm
|
||||||
also has some options designed to be used by its subscribers:-
|
also has some commands designed to be used by it's subscribers and
|
||||||
|
system startup:-
|
||||||
.Bl -tag -width indent
|
.Bl -tag -width indent
|
||||||
|
.It Fl I
|
||||||
|
Initialise the state directory
|
||||||
|
.Pa @VARDIR@ .
|
||||||
|
This only needs to be called if the initial system boot sequence does not
|
||||||
|
automatically clean it out; for example the state directory is moved
|
||||||
|
somewhere other than
|
||||||
|
.Pa /var/run .
|
||||||
|
If used, it should only be called once as early in the system boot sequence
|
||||||
|
as possible and before
|
||||||
|
.Nm
|
||||||
|
is used to add interfaces.
|
||||||
|
.It Fl R
|
||||||
|
Echo the command used to restart a service.
|
||||||
|
.It Fl r Ar service
|
||||||
|
If the
|
||||||
|
.Ar service
|
||||||
|
is running then restart it.
|
||||||
|
If the service does not exist or is not running then zero is returned,
|
||||||
|
otherwise the result of restarting the service.
|
||||||
.It Fl v
|
.It Fl v
|
||||||
Echo variables DOMAINS, SEARCH and NAMESERVERS so that the subscriber can
|
Echo variables DOMAINS, SEARCH and NAMESERVERS so that the subscriber can
|
||||||
configure the resolver easily.
|
configure the resolver easily.
|
||||||
@ -278,16 +290,16 @@ Directory of subscribers which are run after the libc subscriber is run.
|
|||||||
State directory for
|
State directory for
|
||||||
.Nm .
|
.Nm .
|
||||||
.El
|
.El
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr resolver 3 ,
|
||||||
|
.Xr stdin 4 ,
|
||||||
|
.Xr resolv.conf 5 ,
|
||||||
|
.Xr resolvconf.conf 5
|
||||||
.Sh HISTORY
|
.Sh HISTORY
|
||||||
This implementation of
|
This implementation of
|
||||||
.Nm
|
.Nm
|
||||||
is called openresolv and is fully command line compatible with Debian's
|
is called openresolv and is fully command line compatible with Debian's
|
||||||
resolvconf, as written by Thomas Hood.
|
resolvconf, as written by Thomas Hood.
|
||||||
.Sh SEE ALSO
|
|
||||||
.Xr resolv.conf 5 ,
|
|
||||||
.Xr resolvconf.conf 5 ,
|
|
||||||
.Xr resolver 3 ,
|
|
||||||
.Xr stdin 3
|
|
||||||
.Sh AUTHORS
|
.Sh AUTHORS
|
||||||
.An Roy Marples Aq Mt roy@marples.name
|
.An Roy Marples Aq Mt roy@marples.name
|
||||||
.Sh BUGS
|
.Sh BUGS
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
.\" SUCH DAMAGE.
|
.\" SUCH DAMAGE.
|
||||||
.\"
|
.\"
|
||||||
.Dd February 21, 2016
|
.Dd April 28, 2016
|
||||||
.Dt RESOLVCONF.CONF 5
|
.Dt RESOLVCONF.CONF 5
|
||||||
.Os
|
.Os
|
||||||
.Sh NAME
|
.Sh NAME
|
||||||
@ -103,7 +103,8 @@ This is equivalent to the
|
|||||||
.Nm resolvconf -p
|
.Nm resolvconf -p
|
||||||
option.
|
option.
|
||||||
.It Sy replace
|
.It Sy replace
|
||||||
Is a space separated list of replacement keywords. The syntax is this:
|
Is a space separated list of replacement keywords.
|
||||||
|
The syntax is this:
|
||||||
.Va $keyword Ns / Ns Va $match Ns / Ns Va $replacement
|
.Va $keyword Ns / Ns Va $match Ns / Ns Va $replacement
|
||||||
.Pp
|
.Pp
|
||||||
Example, given this resolv.conf:
|
Example, given this resolv.conf:
|
||||||
@ -284,33 +285,32 @@ variables, documented below.
|
|||||||
.Pp
|
.Pp
|
||||||
.Bl -tag -width indent
|
.Bl -tag -width indent
|
||||||
.It Sy dnsmasq_service
|
.It Sy dnsmasq_service
|
||||||
Location of the dnsmasq service.
|
Name of the dnsmasq service.
|
||||||
.It Sy dnsmasq_restart
|
.It Sy dnsmasq_restart
|
||||||
Command to restart the dnsmasq service.
|
Command to restart the dnsmasq service.
|
||||||
.It Sy dnsmasq_pid
|
.It Sy dnsmasq_pid
|
||||||
Location of the dnsmasq pidfile.
|
Location of the dnsmasq pidfile.
|
||||||
.It Sy libc_service
|
.It Sy libc_service
|
||||||
Location of the libc service.
|
Name of the libc service.
|
||||||
.It Sy libc_restart
|
.It Sy libc_restart
|
||||||
Command to restart the libc service.
|
Command to restart the libc service.
|
||||||
.It Sy named_service
|
.It Sy named_service
|
||||||
Location of the named service.
|
Name of the named service.
|
||||||
.It Sy named_restart
|
.It Sy named_restart
|
||||||
Command to restart the named service.
|
Command to restart the named service.
|
||||||
.It Sy pdnsd_restart
|
.It Sy pdnsd_restart
|
||||||
Command to restart the pdnsd service.
|
Command to restart the pdnsd service.
|
||||||
.It Sy unbound_service
|
.It Sy unbound_service
|
||||||
Location of the unbound service.
|
Name of the unbound service.
|
||||||
.It Sy unbound_restart
|
.It Sy unbound_restart
|
||||||
Command to restart the unbound service.
|
Command to restart the unbound service.
|
||||||
.It Sy unbound_pid
|
.It Sy unbound_pid
|
||||||
Location of the unbound pidfile.
|
Location of the unbound pidfile.
|
||||||
.El
|
.El
|
||||||
.Sh SEE ALSO
|
.Sh SEE ALSO
|
||||||
|
.Xr sh 1 ,
|
||||||
.Xr resolv.conf 5 ,
|
.Xr resolv.conf 5 ,
|
||||||
.Xr resolvconf 8
|
.Xr resolvconf 8
|
||||||
and
|
|
||||||
.Xr sh 1 .
|
|
||||||
.Sh AUTHORS
|
.Sh AUTHORS
|
||||||
.An Roy Marples Aq Mt roy@marples.name
|
.An Roy Marples Aq Mt roy@marples.name
|
||||||
.Sh BUGS
|
.Sh BUGS
|
||||||
|
@ -25,9 +25,12 @@
|
|||||||
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
RESOLVCONF="$0"
|
RESOLVCONF="$0"
|
||||||
|
OPENRESOLV_VERSION="3.8.1"
|
||||||
SYSCONFDIR=@SYSCONFDIR@
|
SYSCONFDIR=@SYSCONFDIR@
|
||||||
LIBEXECDIR=@LIBEXECDIR@
|
LIBEXECDIR=@LIBEXECDIR@
|
||||||
VARDIR=@VARDIR@
|
VARDIR=@VARDIR@
|
||||||
|
RCDIR=@RCDIR@
|
||||||
|
RESTARTCMD=@RESTARTCMD@
|
||||||
|
|
||||||
# Disregard dhcpcd setting
|
# Disregard dhcpcd setting
|
||||||
unset interface_order state_dir
|
unset interface_order state_dir
|
||||||
@ -71,55 +74,45 @@ error_exit()
|
|||||||
usage()
|
usage()
|
||||||
{
|
{
|
||||||
cat <<-EOF
|
cat <<-EOF
|
||||||
Usage: ${RESOLVCONF##*/} [options]
|
Usage: ${RESOLVCONF##*/} [options] command [argument]
|
||||||
|
|
||||||
Inform the system about any DNS updates.
|
Inform the system about any DNS updates.
|
||||||
|
|
||||||
Options:
|
Commands:
|
||||||
-a \$INTERFACE Add DNS information to the specified interface
|
-a \$INTERFACE Add DNS information to the specified interface
|
||||||
(DNS supplied via stdin in resolv.conf format)
|
(DNS supplied via stdin in resolv.conf format)
|
||||||
-m metric Give the added DNS information a metric
|
|
||||||
-p Mark the interface as private
|
|
||||||
-x Mark the interface as exclusive
|
|
||||||
-d \$INTERFACE Delete DNS information from the specified interface
|
-d \$INTERFACE Delete DNS information from the specified interface
|
||||||
-f Ignore non existant interfaces
|
-h Show this help cruft
|
||||||
-I Init the state dir
|
|
||||||
-u Run updates from our current DNS information
|
|
||||||
-l [\$PATTERN] Show DNS information, optionally from interfaces
|
|
||||||
that match the specified pattern
|
|
||||||
-i [\$PATTERN] Show interfaces that have supplied DNS information
|
-i [\$PATTERN] Show interfaces that have supplied DNS information
|
||||||
optionally from interfaces that match the specified
|
optionally from interfaces that match the specified
|
||||||
pattern
|
pattern
|
||||||
|
-l [\$PATTERN] Show DNS information, optionally from interfaces
|
||||||
|
that match the specified pattern
|
||||||
|
|
||||||
|
-u Run updates from our current DNS information
|
||||||
|
|
||||||
|
Options:
|
||||||
|
-f Ignore non existent interfaces
|
||||||
|
-m metric Give the added DNS information a metric
|
||||||
|
-p Mark the interface as private
|
||||||
|
-x Mark the interface as exclusive
|
||||||
|
|
||||||
|
Subscriber and System Init Commands:
|
||||||
|
-I Init the state dir
|
||||||
|
-r \$SERVICE Restart the system service
|
||||||
|
(restarting a non-existent or non-running service
|
||||||
|
should have no output and return 0)
|
||||||
|
-R Show the system service restart command
|
||||||
-v [\$PATTERN] echo NEWDOMAIN, NEWSEARCH and NEWNS variables to
|
-v [\$PATTERN] echo NEWDOMAIN, NEWSEARCH and NEWNS variables to
|
||||||
the console
|
the console
|
||||||
-h Show this help cruft
|
-V [\$PATTERN] Same as -v, but only uses configuration in
|
||||||
|
$SYSCONFDIR/resolvconf.conf
|
||||||
EOF
|
EOF
|
||||||
[ -z "$1" ] && exit 0
|
[ -z "$1" ] && exit 0
|
||||||
echo
|
echo
|
||||||
error_exit "$*"
|
error_exit "$*"
|
||||||
}
|
}
|
||||||
|
|
||||||
echo_resolv()
|
|
||||||
{
|
|
||||||
local line= OIFS="$IFS"
|
|
||||||
|
|
||||||
[ -n "$1" -a -f "$IFACEDIR/$1" ] || return 1
|
|
||||||
echo "# resolv.conf from $1"
|
|
||||||
# Our variable maker works of the fact each resolv.conf per interface
|
|
||||||
# is separated by blank lines.
|
|
||||||
# So we remove them when echoing them.
|
|
||||||
while read -r line; do
|
|
||||||
IFS="$OIFS"
|
|
||||||
if [ -n "$line" ]; then
|
|
||||||
# We need to set IFS here to preserve any whitespace
|
|
||||||
IFS=''
|
|
||||||
printf "%s\n" "$line"
|
|
||||||
fi
|
|
||||||
done < "$IFACEDIR/$1"
|
|
||||||
echo
|
|
||||||
IFS="$OIFS"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Strip any trailing dot from each name as a FQDN does not belong
|
# Strip any trailing dot from each name as a FQDN does not belong
|
||||||
# in resolv.conf(5)
|
# in resolv.conf(5)
|
||||||
# If you think otherwise, capture a DNS trace and you'll see libc
|
# If you think otherwise, capture a DNS trace and you'll see libc
|
||||||
@ -159,7 +152,10 @@ parse_resolv()
|
|||||||
private=false
|
private=false
|
||||||
for p in $private_interfaces; do
|
for p in $private_interfaces; do
|
||||||
case "$iface" in
|
case "$iface" in
|
||||||
"$p"|"$p":*) private=true; break;;
|
"$p"|"$p":*)
|
||||||
|
private=true
|
||||||
|
break
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
@ -261,6 +257,108 @@ config_mkdirs()
|
|||||||
return $e
|
return $e
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# With the advent of alternative init systems, it's possible to have
|
||||||
|
# more than one installed. So we need to try and guess what one we're
|
||||||
|
# using unless overriden by configure.
|
||||||
|
# Note that restarting a service is a last resort - the subscribers
|
||||||
|
# should make a reasonable attempt to reconfigre the service via some
|
||||||
|
# method, normally SIGHUP.
|
||||||
|
detect_init()
|
||||||
|
{
|
||||||
|
[ -n "$RESTARTCMD" ] && return 0
|
||||||
|
|
||||||
|
# Detect the running init system.
|
||||||
|
# As systemd and OpenRC can be installed on top of legacy init
|
||||||
|
# systems we try to detect them first.
|
||||||
|
local status="@STATUSARG@"
|
||||||
|
: ${status:=status}
|
||||||
|
if [ -x /bin/systemctl -a -S /run/systemd/private ]; then
|
||||||
|
RESTARTCMD="if /bin/systemctl --quiet is-active \$1.service; then
|
||||||
|
/bin/systemctl restart \$1.service;
|
||||||
|
fi"
|
||||||
|
elif [ -x /usr/bin/systemctl -a -S /run/systemd/private ]; then
|
||||||
|
RESTARTCMD="if /usr/bin/systemctl --quiet is-active \$1.service; then
|
||||||
|
/usr/bin/systemctl restart \$1.service;
|
||||||
|
fi"
|
||||||
|
elif [ -x /sbin/rc-service -a \
|
||||||
|
-s /libexec/rc/init.d/softlevel -o -s /run/openrc/softlevel ]
|
||||||
|
then
|
||||||
|
RESTARTCMD="/sbin/rc-service -i \$1 -- -Ds restart"
|
||||||
|
elif [ -x /usr/sbin/invoke-rc.d ]; then
|
||||||
|
RCDIR=/etc/init.d
|
||||||
|
RESTARTCMD="if /usr/sbin/invoke-rc.d --quiet \$1 status 1>/dev/null 2>&1; then
|
||||||
|
/usr/sbin/invoke-rc.d \$1 restart;
|
||||||
|
fi"
|
||||||
|
elif [ -x /sbin/service ]; then
|
||||||
|
# Old RedHat
|
||||||
|
RCDIR=/etc/init.d
|
||||||
|
RESTARTCMD="if /sbin/service \$1; then
|
||||||
|
/sbin/service \$1 restart;
|
||||||
|
fi"
|
||||||
|
elif [ -x /usr/sbin/service ]; then
|
||||||
|
# Could be FreeBSD
|
||||||
|
RESTARTCMD="if /usr/sbin/service \$1 $status 1>/dev/null 2>&1; then
|
||||||
|
/usr/sbin/service \$1 restart;
|
||||||
|
fi"
|
||||||
|
elif [ -x /bin/sv ]; then
|
||||||
|
RESTARTCMD="/bin/sv try-restart \$1"
|
||||||
|
elif [ -x /usr/bin/sv ]; then
|
||||||
|
RESTARTCMD="/usr/bin/sv try-restart \$1"
|
||||||
|
elif [ -e /etc/arch-release -a -d /etc/rc.d ]; then
|
||||||
|
RCDIR=/etc/rc.d
|
||||||
|
RESTARTCMD="if [ -e /var/run/daemons/\$1 ]; then
|
||||||
|
/etc/rc.d/\$1 restart;
|
||||||
|
fi"
|
||||||
|
elif [ -e /etc/slackware-version -a -d /etc/rc.d ]; then
|
||||||
|
RESTARTCMD="if /etc/rc.d/rc.\$1 status 1>/dev/null 2>&1; then
|
||||||
|
/etc/rc.d/rc.\$1 restart;
|
||||||
|
fi"
|
||||||
|
elif [ -e /etc/rc.d/rc.subr -a -d /etc/rc.d ]; then
|
||||||
|
# OpenBSD
|
||||||
|
RESTARTCMD="if /etc/rc.d/\$1 check 1>/dev/null 2>&1; then
|
||||||
|
/etc/rc.d/\$1 restart;
|
||||||
|
fi"
|
||||||
|
else
|
||||||
|
for x in /etc/init.d/rc.d /etc/rc.d /etc/init.d; do
|
||||||
|
[ -d $x ] || continue
|
||||||
|
RESTARTCMD="if $x/\$1 $status 1>/dev/null 2>&1; then
|
||||||
|
$x/\$1 restart;
|
||||||
|
fi"
|
||||||
|
break
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$RESTARTCMD" ]; then
|
||||||
|
if [ "$NOINIT_WARNED" != true ]; then
|
||||||
|
warn "could not detect a useable init system"
|
||||||
|
_NOINIT_WARNED=true
|
||||||
|
fi
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
_NOINIT_WARNED=
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
echo_resolv()
|
||||||
|
{
|
||||||
|
local line= OIFS="$IFS"
|
||||||
|
|
||||||
|
[ -n "$1" -a -f "$IFACEDIR/$1" ] || return 1
|
||||||
|
echo "# resolv.conf from $1"
|
||||||
|
# Our variable maker works of the fact each resolv.conf per interface
|
||||||
|
# is separated by blank lines.
|
||||||
|
# So we remove them when echoing them.
|
||||||
|
while read -r line; do
|
||||||
|
IFS="$OIFS"
|
||||||
|
if [ -n "$line" ]; then
|
||||||
|
# We need to set IFS here to preserve any whitespace
|
||||||
|
IFS=''
|
||||||
|
printf "%s\n" "$line"
|
||||||
|
fi
|
||||||
|
done < "$IFACEDIR/$1"
|
||||||
|
IFS="$OIFS"
|
||||||
|
}
|
||||||
|
|
||||||
list_resolv()
|
list_resolv()
|
||||||
{
|
{
|
||||||
[ -d "$IFACEDIR" ] || return 0
|
[ -d "$IFACEDIR" ] || return 0
|
||||||
@ -320,6 +418,7 @@ list_resolv()
|
|||||||
|
|
||||||
cd "$IFACEDIR"
|
cd "$IFACEDIR"
|
||||||
retval=1
|
retval=1
|
||||||
|
excl=true
|
||||||
for i in $(uniqify $list); do
|
for i in $(uniqify $list); do
|
||||||
# Only list interfaces which we really have
|
# Only list interfaces which we really have
|
||||||
if ! [ -f "$i" ]; then
|
if ! [ -f "$i" ]; then
|
||||||
@ -334,6 +433,7 @@ list_resolv()
|
|||||||
printf %s "$i "
|
printf %s "$i "
|
||||||
else
|
else
|
||||||
echo_resolv "$i"
|
echo_resolv "$i"
|
||||||
|
echo
|
||||||
fi
|
fi
|
||||||
[ $? = 0 -a "$retval" = 1 ] && retval=0
|
[ $? = 0 -a "$retval" = 1 ] && retval=0
|
||||||
done
|
done
|
||||||
@ -499,7 +599,7 @@ make_vars()
|
|||||||
|
|
||||||
force=false
|
force=false
|
||||||
VFLAG=
|
VFLAG=
|
||||||
while getopts a:Dd:fhIilm:puvVx OPT; do
|
while getopts a:Dd:fhIilm:pRruvVx OPT; do
|
||||||
case "$OPT" in
|
case "$OPT" in
|
||||||
f) force=true;;
|
f) force=true;;
|
||||||
h) usage;;
|
h) usage;;
|
||||||
@ -541,6 +641,18 @@ if [ "$cmd" = l -o "$cmd" = i ]; then
|
|||||||
exit $?
|
exit $?
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Restart a service or echo the command to restart a service
|
||||||
|
if [ "$cmd" = r -o "$cmd" = R ]; then
|
||||||
|
detect_init || exit 1
|
||||||
|
if [ "$cmd" = r ]; then
|
||||||
|
set -- $args
|
||||||
|
eval $RESTARTCMD
|
||||||
|
else
|
||||||
|
echo "$RESTARTCMD"
|
||||||
|
fi
|
||||||
|
exit $?
|
||||||
|
fi
|
||||||
|
|
||||||
# Not normally needed, but subscribers should be able to run independently
|
# Not normally needed, but subscribers should be able to run independently
|
||||||
if [ "$cmd" = v -o -n "$VFLAG" ]; then
|
if [ "$cmd" = v -o -n "$VFLAG" ]; then
|
||||||
make_vars "$iface"
|
make_vars "$iface"
|
||||||
@ -765,13 +877,17 @@ case "${resolvconf:-YES}" in
|
|||||||
*) exit 0;;
|
*) exit 0;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
# Try and detect a suitable init system for our scripts
|
||||||
|
detect_init
|
||||||
|
export RESTARTCMD RCDIR _NOINIT_WARNED
|
||||||
|
|
||||||
eval "$(make_vars)"
|
eval "$(make_vars)"
|
||||||
export RESOLVCONF DOMAINS SEARCH NAMESERVERS LOCALNAMESERVERS
|
export RESOLVCONF DOMAINS SEARCH NAMESERVERS LOCALNAMESERVERS
|
||||||
: ${list_resolv:=list_resolv -l}
|
: ${list_resolv:=list_resolv -l}
|
||||||
retval=0
|
retval=0
|
||||||
|
|
||||||
# Run scripts in the same directory resolvconf is run from
|
# Run scripts in the same directory resolvconf is run from
|
||||||
# in case any scripts accidently dump files in the wrong place.
|
# in case any scripts accidentally dump files in the wrong place.
|
||||||
cd "$_PWD"
|
cd "$_PWD"
|
||||||
for script in "$LIBEXECDIR"/*; do
|
for script in "$LIBEXECDIR"/*; do
|
||||||
if [ -f "$script" ]; then
|
if [ -f "$script" ]; then
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# Copyright (c) 2009-2014 Roy Marples
|
# Copyright (c) 2009-2016 Roy Marples
|
||||||
# All rights reserved
|
# All rights reserved
|
||||||
|
|
||||||
# unbound subscriber for resolvconf
|
# unbound subscriber for resolvconf
|
||||||
@ -37,7 +37,6 @@ NL="
|
|||||||
|
|
||||||
: ${unbound_pid:=/var/run/unbound.pid}
|
: ${unbound_pid:=/var/run/unbound.pid}
|
||||||
: ${unbound_service:=unbound}
|
: ${unbound_service:=unbound}
|
||||||
: ${unbound_restart:=@RESTARTCMD ${unbound_service}@}
|
|
||||||
newconf="# Generated by resolvconf$NL"
|
newconf="# Generated by resolvconf$NL"
|
||||||
|
|
||||||
for d in $DOMAINS; do
|
for d in $DOMAINS; do
|
||||||
@ -71,6 +70,18 @@ else
|
|||||||
@SBINDIR@/resolvconf -D "$unbound_conf"
|
@SBINDIR@/resolvconf -D "$unbound_conf"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
restart_unbound()
|
||||||
|
{
|
||||||
|
if [ -n "$unbound_restart" ]; then
|
||||||
|
eval $unbound_restart
|
||||||
|
elif [ -n "$RESTARTCMD" ]; then
|
||||||
|
set -- ${unbound_service}
|
||||||
|
eval $RESTARTCMD
|
||||||
|
else
|
||||||
|
@SBINDIR@/resolvconf -r ${unbound_service}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
if [ ! -f "$unbound_conf" ] || \
|
if [ ! -f "$unbound_conf" ] || \
|
||||||
[ "$(cat "$unbound_conf")" != "$(printf %s "$newconf")" ]
|
[ "$(cat "$unbound_conf")" != "$(printf %s "$newconf")" ]
|
||||||
then
|
then
|
||||||
@ -78,9 +89,9 @@ then
|
|||||||
# If we can't sent a HUP then force a restart
|
# If we can't sent a HUP then force a restart
|
||||||
if [ -s "$unbound_pid" ]; then
|
if [ -s "$unbound_pid" ]; then
|
||||||
if ! kill -HUP $(cat "$unbound_pid") 2>/dev/null; then
|
if ! kill -HUP $(cat "$unbound_pid") 2>/dev/null; then
|
||||||
eval $unbound_restart
|
restart_unbound
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
eval $unbound_restart
|
restart_unbound
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user