Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/ROY]: src/external/bsd/openresolv/dist Import openresolv-3.7.3 with the ...



details:   https://anonhg.NetBSD.org/src/rev/fa7fa3f5e0f6
branches:  ROY
changeset: 454317:fa7fa3f5e0f6
user:      roy <roy%NetBSD.org@localhost>
date:      Mon Feb 22 10:07:26 2016 +0000

description:
Import openresolv-3.7.3 with the following changes:
  *  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.

diffstat:

 external/bsd/openresolv/dist/resolvconf.conf.5.in |   9 ++++--
 external/bsd/openresolv/dist/resolvconf.in        |  29 +++++++++++++++++++---
 2 files changed, 30 insertions(+), 8 deletions(-)

diffs (106 lines):

diff -r 1d72bf5c838d -r fa7fa3f5e0f6 external/bsd/openresolv/dist/resolvconf.conf.5.in
--- a/external/bsd/openresolv/dist/resolvconf.conf.5.in Tue Sep 29 09:10:07 2015 +0000
+++ b/external/bsd/openresolv/dist/resolvconf.conf.5.in Mon Feb 22 10:07:26 2016 +0000
@@ -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 @@
 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
diff -r 1d72bf5c838d -r fa7fa3f5e0f6 external/bsd/openresolv/dist/resolvconf.in
--- a/external/bsd/openresolv/dist/resolvconf.in        Tue Sep 29 09:10:07 2015 +0000
+++ b/external/bsd/openresolv/dist/resolvconf.in        Mon Feb 22 10:07:26 2016 +0000
@@ -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
@@ -50,12 +50,12 @@
                interface_order="$(cat "$SYSCONFDIR"/interface-order)"
        fi
 fi
-TMPDIR="$VARDIR/tmp"
 IFACEDIR="$VARDIR/interfaces"
 METRICDIR="$VARDIR/metrics"
 PRIVATEDIR="$VARDIR/private"
 EXCLUSIVEDIR="$VARDIR/exclusive"
 LOCKDIR="$VARDIR/lock"
+_PWD="$PWD"
 
 warn()
 {
@@ -120,6 +120,21 @@
        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()
@@ -163,14 +178,14 @@
                        $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
@@ -753,6 +768,10 @@
 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##*/}"



Home | Main Index | Thread Index | Old Index