MFV r296164:

Update openresolve to version 3.7.3 including:

 *  Save the initial working directory and change to it just before
     running any scripts.
     This avoids scripts putting files accidently where they shouldn't.
 *  Strip trailing dot from search and domain names.
 *  man page improvements.

Relnotes:	yes
This commit is contained in:
pfg 2016-02-29 14:46:39 +00:00
parent 6dd3382ff8
commit 0f231ca034
3 changed files with 31 additions and 8 deletions

View File

@ -1,5 +1,5 @@
PKG= openresolv
VERSION= 3.7.1
VERSION= 3.7.3
# Nasty hack so that make clean works without configure being run
_CONFIG_MK!= test -e config.mk && echo config.mk || echo config-null.mk

View File

@ -1,4 +1,4 @@
.\" Copyright (c) 2009-2015 Roy Marples
.\" Copyright (c) 2009-2016 Roy Marples
.\" All rights reserved
.\"
.\" 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
.\" SUCH DAMAGE.
.\"
.Dd May 14, 2015
.Dd February 21, 2016
.Dt RESOLVCONF.CONF 5
.Os
.Sh NAME
@ -42,8 +42,11 @@ must contain valid shell commands.
Listed below are the standard
.Nm
variables that may be set.
If the values contain white space for special shell characters,
If the values contain whitespace, wildcards or other special shell characters,
ensure they are quoted and escaped correctly.
See the
.Sy replace
variable for an example on quoting.
.Pp
After updating this file, you may wish to run
.Nm resolvconf -u

View File

@ -1,5 +1,5 @@
#!/bin/sh
# Copyright (c) 2007-2015 Roy Marples
# Copyright (c) 2007-2016 Roy Marples
# All rights reserved
# Redistribution and use in source and binary forms, with or without
@ -55,6 +55,7 @@ METRICDIR="$VARDIR/metrics"
PRIVATEDIR="$VARDIR/private"
EXCLUSIVEDIR="$VARDIR/exclusive"
LOCKDIR="$VARDIR/lock"
_PWD="$PWD"
warn()
{
@ -119,6 +120,21 @@ echo_resolv()
IFS="$OIFS"
}
# Strip any trailing dot from each name as a FQDN does not belong
# in resolv.conf(5)
# If you think otherwise, capture a DNS trace and you'll see libc
# will strip it regardless.
# This also solves setting up duplicate zones in our subscribers.
strip_trailing_dots()
{
local n=
for n; do
printf "%s" "${n%.}"
done
printf "\n"
}
# Parse resolv.conf's and make variables
# for domain name servers, search name servers and global nameservers
parse_resolv()
@ -162,14 +178,14 @@ parse_resolv()
$islocal || ns="$ns${line#* } "
;;
"domain "*)
search="$(strip_trailing_dots ${line#* })"
if [ -z "$domain" ]; then
domain="${line#* }"
domain="$search"
echo "DOMAIN=\"$domain\""
fi
search="${line#* }"
;;
"search "*)
search="${line#* }"
search="$(strip_trailing_dots ${line#* })"
;;
*)
[ -n "$line" ] && continue
@ -752,6 +768,10 @@ eval "$(make_vars)"
export RESOLVCONF DOMAINS SEARCH NAMESERVERS LOCALNAMESERVERS
: ${list_resolv:=list_resolv -l}
retval=0
# Run scripts in the same directory resolvconf is run from
# in case any scripts accidently dump files in the wrong place.
cd "$_PWD"
for script in "$LIBEXECDIR"/*; do
if [ -f "$script" ]; then
eval script_enabled="\$${script##*/}"