Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/external/bsd/dhcpcd/dist Update to dhcpcd-9.4.1 with the fol...
details: https://anonhg.NetBSD.org/src/rev/ed694777d480
branches: trunk
changeset: 1024401:ed694777d480
user: roy <roy%NetBSD.org@localhost>
date: Fri Oct 22 13:21:58 2021 +0000
description:
Update to dhcpcd-9.4.1 with the following changes:
* BSD: Find the correct interface for tunnelled routes
* OpenBSD: Fix uniqueness of routes for matching priorities
* Linux: Support more platforms for seccomp (thanks to Fabrice Fontaine)
* eloop: Process all waiting fd's as they come in
* control: Unlink sockets when not in privsep
* privsep: Renamed Master to Manager
* privsep: Renamed Privilged Actioneer to Privileged Proxy
* privsep: Fix getting interface VLANID on BSD
* privsep: Enforce proper alignment of serialized struct cmsghdr
* IPv4LL: Don't remove statically assigned addresses
* routes: Fix route comparision for network prefixes with different masks
* DHCP6: Only send FQDN for SOLICIT, REQUEST, RENEW, or REBIND messages
* DHCP6: Don't spam the log when a RA repeatedly triggers an INFORM
* DHCP: Fix infinite INFORM messages
diffstat:
external/bsd/dhcpcd/dist/LICENSE | 2 +-
external/bsd/dhcpcd/dist/README.md | 12 +-
external/bsd/dhcpcd/dist/hooks/50-ypbind | 84 +
external/bsd/dhcpcd/dist/hooks/dhcpcd-run-hooks | 352 +++++++
external/bsd/dhcpcd/dist/hooks/dhcpcd-run-hooks.8 | 234 ++++
external/bsd/dhcpcd/dist/src/arp.c | 2 +-
external/bsd/dhcpcd/dist/src/arp.h | 2 +-
external/bsd/dhcpcd/dist/src/auth.c | 2 +-
external/bsd/dhcpcd/dist/src/auth.h | 2 +-
external/bsd/dhcpcd/dist/src/bpf.h | 2 +-
external/bsd/dhcpcd/dist/src/common.c | 2 +-
external/bsd/dhcpcd/dist/src/common.h | 2 +-
external/bsd/dhcpcd/dist/src/control.c | 21 +-
external/bsd/dhcpcd/dist/src/control.h | 2 +-
external/bsd/dhcpcd/dist/src/defs.h | 4 +-
external/bsd/dhcpcd/dist/src/dev.h | 2 +-
external/bsd/dhcpcd/dist/src/dhcp-common.c | 2 +-
external/bsd/dhcpcd/dist/src/dhcp-common.h | 2 +-
external/bsd/dhcpcd/dist/src/dhcp.h | 2 +-
external/bsd/dhcpcd/dist/src/dhcp6.h | 3 +-
external/bsd/dhcpcd/dist/src/dhcpcd-embedded.c | 2 +-
external/bsd/dhcpcd/dist/src/dhcpcd-embedded.h | 2 +-
external/bsd/dhcpcd/dist/src/dhcpcd.8 | 885 ++++++++++++++++++
external/bsd/dhcpcd/dist/src/dhcpcd.conf.5 | 1004 +++++++++++++++++++++
external/bsd/dhcpcd/dist/src/dhcpcd.h | 4 +-
external/bsd/dhcpcd/dist/src/duid.c | 2 +-
external/bsd/dhcpcd/dist/src/duid.h | 2 +-
external/bsd/dhcpcd/dist/src/eloop.c | 58 +-
external/bsd/dhcpcd/dist/src/eloop.h | 2 +-
external/bsd/dhcpcd/dist/src/if-options.h | 4 +-
external/bsd/dhcpcd/dist/src/if.c | 2 +-
external/bsd/dhcpcd/dist/src/if.h | 2 +-
external/bsd/dhcpcd/dist/src/ipv4.c | 33 +-
external/bsd/dhcpcd/dist/src/ipv4.h | 4 +-
external/bsd/dhcpcd/dist/src/ipv4ll.c | 2 +-
external/bsd/dhcpcd/dist/src/ipv4ll.h | 2 +-
external/bsd/dhcpcd/dist/src/ipv6nd.h | 2 +-
external/bsd/dhcpcd/dist/src/logerr.h | 2 +-
external/bsd/dhcpcd/dist/src/privsep-bpf.c | 4 +-
external/bsd/dhcpcd/dist/src/privsep-bpf.h | 2 +-
external/bsd/dhcpcd/dist/src/privsep-bsd.c | 12 +-
external/bsd/dhcpcd/dist/src/privsep-control.c | 6 +-
external/bsd/dhcpcd/dist/src/privsep-control.h | 2 +-
external/bsd/dhcpcd/dist/src/privsep-inet.c | 20 +-
external/bsd/dhcpcd/dist/src/privsep-inet.h | 2 +-
external/bsd/dhcpcd/dist/src/privsep-root.c | 16 +-
external/bsd/dhcpcd/dist/src/privsep-root.h | 2 +-
external/bsd/dhcpcd/dist/src/privsep.h | 6 +-
external/bsd/dhcpcd/dist/src/route.c | 30 +-
external/bsd/dhcpcd/dist/src/route.h | 2 +-
external/bsd/dhcpcd/dist/src/sa.c | 2 +-
external/bsd/dhcpcd/dist/src/sa.h | 2 +-
external/bsd/dhcpcd/dist/src/script.h | 2 +-
53 files changed, 2744 insertions(+), 116 deletions(-)
diffs (truncated from 3655 to 300 lines):
diff -r 55e6527f5c6d -r ed694777d480 external/bsd/dhcpcd/dist/LICENSE
--- a/external/bsd/dhcpcd/dist/LICENSE Fri Oct 22 06:20:47 2021 +0000
+++ b/external/bsd/dhcpcd/dist/LICENSE Fri Oct 22 13:21:58 2021 +0000
@@ -1,4 +1,4 @@
-Copyright (c) 2006-2020 Roy Marples <roy%marples.name@localhost>
+Copyright (c) 2006-2021 Roy Marples <roy%marples.name@localhost>
All rights reserved.
Redistribution and use in source and binary forms, with or without
diff -r 55e6527f5c6d -r ed694777d480 external/bsd/dhcpcd/dist/README.md
--- a/external/bsd/dhcpcd/dist/README.md Fri Oct 22 06:20:47 2021 +0000
+++ b/external/bsd/dhcpcd/dist/README.md Fri Oct 22 13:21:58 2021 +0000
@@ -22,14 +22,9 @@
See [BUILDING.md](BUILDING.md) for how to build dhcpcd.
-If you wish to file a support ticket or help out with development, please
-[visit the Development Area](https://dev.marples.name/project/profile/101/)
-or join the mailing list below.
-
## Configuration
-You should read the
-[dhcpcd.conf man page](http://roy.marples.name/man/html5/dhcpcd.conf.html)
+You should read the dhcpcd.conf man page
and put your options into `/etc/dhcpcd.conf`.
The default configuration file should work for most people just fine.
Here it is, in case you lose it.
@@ -78,7 +73,8 @@
slaac private
```
-The [dhcpcd man page](/man/html8/dhcpcd.html) has a lot of the same options and more, which only apply to calling dhcpcd from the command line.
+The dhcpcd man page has a lot of the same options and more,
+which only apply to calling dhcpcd from the command line.
## Compatibility
@@ -96,5 +92,5 @@
## ChangeLog
We no longer supply a ChangeLog.
However, you're more than welcome to read the
-[commit log](http://roy.marples.name/git/dhcpcd.git/log/) and
+[commit log](https://roy.marples.name/git/dhcpcd/log) and
[archived release announcements](http://roy.marples.name/archives/dhcpcd-discuss/).
diff -r 55e6527f5c6d -r ed694777d480 external/bsd/dhcpcd/dist/hooks/50-ypbind
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/external/bsd/dhcpcd/dist/hooks/50-ypbind Fri Oct 22 13:21:58 2021 +0000
@@ -0,0 +1,84 @@
+# Sample dhcpcd hook for ypbind
+# This script is only suitable for the BSD versions.
+
+: ${ypbind_restart_cmd:=service_command ypbind restart}
+: ${ypbind_stop_cmd:=service_condcommand ypbind stop}
+ypbind_dir="$state_dir/ypbind"
+: ${ypdomain_dir:=/var/yp}
+: ${ypdomain_suffix:=.ypservers}
+
+best_domain()
+{
+ for i in "$ypbind_dir/$interface_order".*; do
+ if [ -f "$i" ]; then
+ cat "$i"
+ return 0
+ fi
+ done
+ return 1
+}
+
+make_yp_binding()
+{
+ [ -d "$ypbind_dir" ] || mkdir -p "$ypbind_dir"
+ echo "$new_nis_domain" >"$ypbind_dir/$ifname"
+
+ if [ -z "$ypdomain_dir" ]; then
+ false
+ else
+ cf="$ypdomain_dir/$new_nis_domain$ypdomain_suffix"
+ if [ -n "$new_nis_servers" ]; then
+ ncf="$cf.$ifname"
+ rm -f "$ncf"
+ for x in $new_nis_servers; do
+ echo "$x" >>"$ncf"
+ done
+ change_file "$cf" "$ncf"
+ else
+ [ -e "$cf" ] && rm "$cf"
+ fi
+ fi
+
+ nd="$(best_domain)"
+ if [ $? = 0 ] && [ "$nd" != "$(domainname)" ]; then
+ domainname "$nd"
+ if [ -n "$ypbind_restart_cmd" ]; then
+ eval $ypbind_restart_cmd
+ fi
+ fi
+}
+
+restore_yp_binding()
+{
+ rm -f "$ypbind_dir/$ifname"
+ nd="$(best_domain)"
+ # We need to stop ypbind if there is no best domain
+ # otherwise it will just stall as we cannot set domainname
+ # to blank :/
+ if [ -z "$nd" ]; then
+ if [ -n "$ypbind_stop_cmd" ]; then
+ eval $ypbind_stop_cmd
+ fi
+ elif [ "$nd" != "$(domainname)" ]; then
+ domainname "$nd"
+ if [ -n "$ypbind_restart_cmd" ]; then
+ eval $ypbind_restart_cmd
+ fi
+ fi
+}
+
+if ! $if_configured; then
+ ;
+elif [ "$reason" = PREINIT ]; then
+ rm -f "$ypbind_dir/$interface".*
+elif $if_up || $if_down; then
+ if [ -n "$new_nis_domain" ]; then
+ if valid_domainname "$new_nis_domain"; then
+ make_yp_binding
+ else
+ syslog err "Invalid NIS domain name: $new_nis_domain"
+ fi
+ elif [ -n "$old_nis_domain" ]; then
+ restore_yp_binding
+ fi
+fi
diff -r 55e6527f5c6d -r ed694777d480 external/bsd/dhcpcd/dist/hooks/dhcpcd-run-hooks
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/external/bsd/dhcpcd/dist/hooks/dhcpcd-run-hooks Fri Oct 22 13:21:58 2021 +0000
@@ -0,0 +1,352 @@
+#!/bin/sh
+# dhcpcd client configuration script
+
+# Handy variables and functions for our hooks to use
+ifname="$interface${protocol+.}$protocol"
+from=from
+signature_base="# Generated by dhcpcd"
+signature="$signature_base $from $ifname"
+signature_base_end="# End of dhcpcd"
+signature_end="$signature_base_end $from $ifname"
+state_dir=/var/run/dhcpcd/hook-state
+_detected_init=false
+
+: ${if_up:=false}
+: ${if_down:=false}
+: ${syslog_debug:=false}
+
+# Ensure that all arguments are unique
+uniqify()
+{
+ result=
+ for i do
+ case " $result " in
+ *" $i "*);;
+ *) result="$result${result:+ }$i";;
+ esac
+ done
+ echo "$result"
+}
+
+# List interface config files in a directory.
+# If dhcpcd is running as a single instance then it will have a list of
+# interfaces in the preferred order.
+# Otherwise we just use what we have.
+list_interfaces()
+{
+ ifaces=
+ for i in $interface_order; do
+ for x in "$1"/$i.*; do
+ [ -f "$x" ] && ifaces="$ifaces${ifaces:+ }${x##*/}"
+ done
+ done
+ for x in "$1"/*; do
+ [ -f "$x" ] && ifaces="$ifaces${ifaces:+ }${x##*/}"
+ done
+ uniqify $ifaces
+}
+
+# Trim function
+trim()
+{
+ var="$*"
+ var=${var#"${var%%[![:space:]]*}"}
+ var=${var%"${var##*[![:space:]]}"}
+ if [ -z "$var" ]; then
+ # So it seems our shell doesn't support wctype(3) patterns
+ # Fall back to sed
+ var=$(echo "$*" | sed -e 's/^[[:space:]]*//;s/[[:space:]]*$//')
+ fi
+ printf %s "$var"
+}
+
+# We normally use sed to extract values using a key from a list of files
+# but sed may not always be available at the time.
+key_get_value()
+{
+ key="$1"
+ shift
+
+ if type sed >/dev/null 2>&1; then
+ sed -n "s/^$key//p" $@
+ else
+ for x do
+ while read line; do
+ case "$line" in
+ "$key"*) echo "${line##$key}";;
+ esac
+ done < "$x"
+ done
+ fi
+}
+
+# We normally use sed to remove markers from a configuration file
+# but sed may not always be available at the time.
+remove_markers()
+{
+ m1="$1"
+ m2="$2"
+ in_marker=0
+
+ shift; shift
+ if type sed >/dev/null 2>&1; then
+ sed "/^$m1/,/^$m2/d" $@
+ else
+ for x do
+ while read line; do
+ case "$line" in
+ "$m1"*) in_marker=1;;
+ "$m2"*) in_marker=0;;
+ *) [ $in_marker = 0 ] && echo "$line";;
+ esac
+ done < "$x"
+ done
+ fi
+}
+
+# Compare two files.
+comp_file()
+{
+ [ -e "$1" ] && [ -e "$2" ] || return 1
+
+ if type cmp >/dev/null 2>&1; then
+ cmp -s "$1" "$2"
+ elif type diff >/dev/null 2>&1; then
+ diff -q "$1" "$2" >/dev/null
+ else
+ # Hopefully we're only working on small text files ...
+ [ "$(cat "$1")" = "$(cat "$2")" ]
+ fi
+}
+
+# Compare two files.
+# If different, replace first with second otherwise remove second.
+change_file()
+{
+ if [ -e "$1" ]; then
+ if comp_file "$1" "$2"; then
+ rm -f "$2"
+ return 1
+ fi
+ fi
+ cat "$2" > "$1"
+ rm -f "$2"
+ return 0
+}
+
+# Compare two files.
+# If different, copy or link depending on target type
+copy_file()
+{
+ if [ -h "$2" ]; then
+ [ "$(readlink "$2")" = "$1" ] && return 1
+ ln -sf "$1" "$2"
+ else
+ comp_file "$1" "$2" && return 1
+ cat "$1" >"$2"
+ fi
+}
+
+# Save a config file
+save_conf()
+{
+ if [ -f "$1" ]; then
+ rm -f "$1-pre.$interface"
+ cat "$1" > "$1-pre.$interface"
+ fi
+}
+
+# Restore a config file
+restore_conf()
+{
+ [ -f "$1-pre.$interface" ] || return 1
+ cat "$1-pre.$interface" > "$1"
Home |
Main Index |
Thread Index |
Old Index