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 Update to openresolv-3.12.0 with ...
details: https://anonhg.NetBSD.org/src/rev/c1ca9e2b33af
branches: ROY
changeset: 948355:c1ca9e2b33af
user: roy <roy%NetBSD.org@localhost>
date: Sun Dec 27 18:25:08 2020 +0000
description:
Update to openresolv-3.12.0 with the following changes:
* Allow configurations to be marked as Deprecated and Acivtated
* Harden resolvconf lock detection
diffstat:
external/bsd/openresolv/dist/resolvconf.8.in | 15 ++-
external/bsd/openresolv/dist/resolvconf.conf.5.in | 4 +-
external/bsd/openresolv/dist/resolvconf.in | 136 ++++++++++++++++++---
3 files changed, 132 insertions(+), 23 deletions(-)
diffs (truncated from 331 to 300 lines):
diff -r ee1398011a6e -r c1ca9e2b33af external/bsd/openresolv/dist/resolvconf.8.in
--- a/external/bsd/openresolv/dist/resolvconf.8.in Sat Nov 28 14:26:16 2020 +0000
+++ b/external/bsd/openresolv/dist/resolvconf.8.in Sun Dec 27 18:25:08 2020 +0000
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd November 29, 2016
+.Dd December 23, 2016
.Dt RESOLVCONF 8
.Os
.Sh NAME
@@ -38,6 +38,10 @@
.Fl a Ar interface Ns Op Ar .protocol
.No < Ns Pa file
.Nm
+.Fl C Ar pattern
+.Nm
+.Fl c Ar pattern
+.Nm
.Op Fl f
.Fl d Ar interface Ns Op Ar .protocol
.Nm
@@ -126,6 +130,15 @@
.Ar protocols
on the
.Ar interface .
+For systems that support the concept of persisting configuration when
+the carrier goes down, then it should instead call
+.Nm
+with
+.Fl C Ar interface.*
+arguments to deprecate the matching interfaces and
+.Fl c Ar interface.*
+to activate the matching interfaces when the carrier comes up.
+This only affects the order in which interfaces are processed.
.Pp
Here are some options for the above commands:-
.Bl -tag -width pattern_opt
diff -r ee1398011a6e -r c1ca9e2b33af external/bsd/openresolv/dist/resolvconf.conf.5.in
--- a/external/bsd/openresolv/dist/resolvconf.conf.5.in Sat Nov 28 14:26:16 2020 +0000
+++ b/external/bsd/openresolv/dist/resolvconf.conf.5.in Sun Dec 27 18:25:08 2020 +0000
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd September 8, 2019
+.Dd October 1, 2020
.Dt RESOLVCONF.CONF 5
.Os
.Sh NAME
@@ -220,7 +220,7 @@
and
.Xr unbound 8 .
Each subscriber can create configuration files which should be included in
-in the subscribers main configuration file.
+the subscribers main configuration file.
.Pp
To disable a subscriber, simply set it's name to NO.
For example, to disable the libc subscriber you would set:
diff -r ee1398011a6e -r c1ca9e2b33af external/bsd/openresolv/dist/resolvconf.in
--- a/external/bsd/openresolv/dist/resolvconf.in Sat Nov 28 14:26:16 2020 +0000
+++ b/external/bsd/openresolv/dist/resolvconf.in Sun Dec 27 18:25:08 2020 +0000
@@ -25,7 +25,7 @@
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
RESOLVCONF="$0"
-OPENRESOLV_VERSION="3.11.0"
+OPENRESOLV_VERSION="3.12.0"
SYSCONFDIR=@SYSCONFDIR@
LIBEXECDIR=@LIBEXECDIR@
VARDIR=@VARDIR@
@@ -64,6 +64,7 @@
METRICDIR="$VARDIR/metrics"
PRIVATEDIR="$VARDIR/private"
EXCLUSIVEDIR="$VARDIR/exclusive"
+DEPRECATEDDIR="$VARDIR/deprecated"
LOCKDIR="$VARDIR/lock"
_PWD="$PWD"
@@ -88,6 +89,8 @@
Commands:
-a \$INTERFACE Add DNS information to the specified interface
(DNS supplied via stdin in resolv.conf format)
+ -C \$PATTERN Deprecate DNS information for matched interfaces
+ -c \$PATTERN Configure DNS information for matched interfaces
-d \$INTERFACE Delete DNS information from the specified interface
-h Show this help cruft
-i [\$PATTERN] Show interfaces that have supplied DNS information
@@ -275,19 +278,14 @@
config_mkdirs()
{
- e=0
for f; do
[ -n "$f" ] || continue
d="$(dirname "$f")"
if [ ! -d "$d" ]; then
- if type install >/dev/null 2>&1; then
- install -d "$d" || e=$?
- else
- mkdir "$d" || e=$?
- fi
+ mkdir -p "$d" || return $?
fi
done
- return $e
+ return 0
}
# With the advent of alternative init systems, it's possible to have
@@ -412,6 +410,22 @@
IFS="$OIFS"
}
+deprecated_interface()
+{
+ [ -d "$DEPRECATEDDIR" ] || return 1
+
+ cd "$DEPRECATEDDIR"
+ for da; do
+ for daf in *; do
+ [ -f "$daf" ] || continue
+ case "$da" in
+ $daf) return 0;;
+ esac
+ done
+ done
+ return 1
+}
+
list_resolv()
{
[ -d "$IFACEDIR" ] || return 0
@@ -453,12 +467,14 @@
$force || report=true
elif ! $excl; then
cd "$IFACEDIR"
+
for i in $interface_order; do
[ -f "$i" ] && list="$list $i"
for ii in "$i":* "$i".*; do
[ -f "$ii" ] && list="$list $ii"
done
done
+
for i in $dynamic_order; do
if [ -e "$i" ] && ! [ -e "$METRICDIR/"*" $i" ]; then
list="$list $i"
@@ -470,18 +486,32 @@
fi
done
done
+
# Interfaces have an implicit metric of 0 if not specified.
for i in *; do
if [ -f "$i" ] && ! [ -e "$METRICDIR/"*" $i" ]; then
list="$list $i"
fi
done
+
if [ -d "$METRICDIR" ]; then
cd "$METRICDIR"
for i in *; do
[ -f "$i" ] && list="$list ${i#* }"
done
fi
+
+ # Move deprecated interfaces to the back
+ active=
+ deprecated=
+ for i in $list; do
+ if deprecated_interface "$i"; then
+ deprecated="$deprecated $i"
+ else
+ active="$active $i"
+ fi
+ done
+ list="$active $deprecated"
fi
cd "$IFACEDIR"
@@ -680,7 +710,7 @@
force=false
VFLAG=
-while getopts a:Dd:fhIilm:pRruvVx OPT; do
+while getopts a:C:c:Dd:fhIilm:pRruvVx OPT; do
case "$OPT" in
f) force=true;;
h) usage;;
@@ -695,7 +725,7 @@
fi
;;
x) IF_EXCLUSIVE=1;;
- '?') ;;
+ '?') exit 1;;
*) cmd="$OPT"; iface="$OPTARG";;
esac
done
@@ -744,14 +774,20 @@
fi
# Test that we have valid options
-if [ "$cmd" = a ] || [ "$cmd" = d ]; then
+case "$cmd" in
+a|d|C|c)
if [ -z "$iface" ]; then
- usage "Interface not specified"
+ error_exit "Interface not specified"
fi
-elif [ "$cmd" != u ]; then
- [ -n "$cmd" ] && [ "$cmd" != h ] && usage "Unknown option $cmd"
+ ;;
+u) ;;
+*)
+ if [ -n "$cmd" ] && [ "$cmd" != h ]; then
+ error_exit "Unknown option $cmd"
+ fi
usage
-fi
+ ;;
+esac
if [ "$cmd" = a ]; then
for x in '/' \\ ' ' '*'; do
@@ -809,6 +845,9 @@
# in /usr which we do our very best to operate without.
[ -w "$VARDIR" ] || error_exit "Cannot write to $LOCKDIR"
: ${lock_timeout:=10}
+: ${clear_nopids:=5}
+have_pid=false
+had_pid=false
while true; do
if mkdir "$LOCKDIR" 2>/dev/null; then
trap 'rm -rf "$LOCKDIR";' EXIT
@@ -816,18 +855,43 @@
echo $$ >"$LOCKDIR/pid"
break
fi
- pid=$(cat "$LOCKDIR/pid")
- if ! kill -0 "$pid"; then
+ pid=$(cat "$LOCKDIR/pid" 2>/dev/null)
+ if [ "$pid" -gt 0 ] 2>/dev/null; then
+ have_pid=true
+ had_pid=true
+ else
+ have_pid=false
+ clear_nopids=$(($clear_nopids - 1))
+ if [ "$clear_nopids" -le 0 ]; then
+ warn "not seen a pid, clearing lock directory"
+ rm -rf "$LOCKDIR"
+ else
+ lock_timeout=$(($lock_timeout - 1))
+ sleep 1
+ fi
+ continue
+ fi
+ if $have_pid && ! kill -0 "$pid"; then
warn "clearing stale lock pid $pid"
rm -rf "$LOCKDIR"
continue
fi
lock_timeout=$(($lock_timeout - 1))
if [ "$lock_timeout" -le 0 ]; then
- error_exit "timed out waiting for lock from pid $pid"
+ if $have_pid; then
+ error_exit "timed out waiting for lock from pid $pid"
+ else
+ if $had_pid; then
+ error_exit "timed out waiting for lock" \
+ "from some pids"
+ else
+ error_exit "timed out waiting for lock"
+ fi
+ fi
fi
sleep 1
done
+unset have_pid had_pid clear_nopids
case "$cmd" in
a)
@@ -947,13 +1011,45 @@
"$PRIVATEDIR/$i" \
"$EXCLUSIVEDIR/"*" $i" || exit $?
done
- if ! ${changed}; then
+
+ if ! $changed; then
# Set the return code based on the forced flag
- ${force}
+ $force
exit $?
fi
unset changed i
;;
+
+C)
+ # Mark interface as deprecated
Home |
Main Index |
Thread Index |
Old Index