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.3.3
details: https://anonhg.NetBSD.org/src/rev/8e6ce5834e49
branches: ROY
changeset: 454303:8e6ce5834e49
user: roy <roy%NetBSD.org@localhost>
date: Sat Nov 21 02:40:55 2009 +0000
description:
Import openresolv-3.3.3
OK: core@, joerg@
diffstat:
external/bsd/openresolv/dist/dnsmasq.in | 118 ++++++
external/bsd/openresolv/dist/libc.in | 162 ++++++++
external/bsd/openresolv/dist/named.in | 80 ++++
external/bsd/openresolv/dist/resolvconf.8.in | 227 ++++++++++++
external/bsd/openresolv/dist/resolvconf.conf.5.in | 154 ++++++++
external/bsd/openresolv/dist/resolvconf.in | 401 ++++++++++++++++++++++
external/bsd/openresolv/dist/unbound.in | 67 +++
7 files changed, 1209 insertions(+), 0 deletions(-)
diffs (truncated from 1237 to 300 lines):
diff -r 8cec458d70ff -r 8e6ce5834e49 external/bsd/openresolv/dist/dnsmasq.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/external/bsd/openresolv/dist/dnsmasq.in Sat Nov 21 02:40:55 2009 +0000
@@ -0,0 +1,118 @@
+#!/bin/sh
+# Copyright (c) 2007-2009 Roy Marples
+# All rights reserved
+
+# dnsmasq subscriber for resolvconf
+
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided
+# with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+[ -f "@SYSCONFDIR@"/resolvconf.conf ] || exit 0
+. "@SYSCONFDIR@/resolvconf.conf" || exit 1
+[ -z "$dnsmasq_conf" -o -z "$dnsmasq_resolv" ] && exit 0
+[ -z "$RESOLVCONF" ] && eval "$(@PREFIX@/sbin/resolvconf -v)"
+
+: ${dnsmasq_pid:=/var/run/dnsmasq.pid}
+: ${dnsmasq_restart:=@RESTARTCMD dnsmasq@}
+newconf="# Generated by resolvconf\n"
+newresolv="$newconf"
+
+# Using dbus means that we never have to restart the daemon
+# This is important as it means we should not drop DNS queries
+# whilst changing DNS options around. However, dbus support is optional
+# so we need to validate a few things first.
+# Check for DBus support in the binary
+dbus=false
+: ${dbus_pid:=/var/run/dbus/dbus.pid}
+[ -s "$dbus_pid" ] || dbus_pid=/var/run/dbus.pid
+[ -s "$dbus_pid" ] || dbus_pid=/var/run/dbus/pid
+if [ -s "$dbus_pid" -a -s "$dnsmasq_pid" ]; then
+ if dnsmasq --version 2>/dev/null | \
+ grep -q "^Compile time options.*[[:space:]]DBus[[:space:]]"
+ then
+ # Sanity - check that dnsmasq and dbus are running
+ if kill -0 $(cat "$dbus_pid") 2>/dev/null && \
+ kill -0 $(cat "$dnsmasq_pid") 2>/dev/null
+ then
+ dbus=true
+ newconf="$newconf\n# Domain specific servers will"
+ newconf="$newconf be sent over dbus\nenable-dbus\n"
+ fi
+ fi
+fi
+
+for n in $NAMESERVERS; do
+ newresolv="${newresolv}nameserver $n\n"
+done
+
+dbusdest=
+for d in $DOMAINS; do
+ dn="${d%%:*}"
+ ns="${d#*:}"
+ while [ -n "$ns" ]; do
+ if $dbus; then
+ SIFS=${IFS-y} OIFS=$IFS
+ IFS=.
+ set -- ${ns%%,*}
+ num="0x$(printf "%02x" $1 $2 $3 $4)"
+ if [ "$SIFS" = yi ]; then
+ unset IFS
+ else
+ IFS=$OIFS
+ fi
+ dbusdest="$dbusdest uint32:$(printf "%u" $num)"
+ dbusdest="$dbusdest string:$dn"
+ else
+ newconf="${newconf}server=/$dn/${ns%%,*}\n"
+ fi
+ [ "$ns" = "${ns#*,}" ] && break
+ ns="${ns#*,}"
+ done
+done
+
+changed=false
+if [ ! -f "$dnsmasq_conf" ] || \
+ [ "$(cat "$dnsmasq_conf")" != "$(printf "$newconf")" ]
+then
+ changed=true
+ printf "$newconf" >"$dnsmasq_conf"
+fi
+if [ -f "$dnsmasq_resolv" ]; then
+ if [ "$(cat "$dnsmasq_resolv")" != "$(printf "$newresolv")" ]; then
+ changed=true
+ printf "$newresolv" >"$dnsmasq_resolv"
+ fi
+else
+ # dnsmasq polls this file so no need to set changed=true
+ printf "$newresolv" >"$dnsmasq_resolv"
+fi
+
+if $changed; then
+ eval $dnsmasq_restart
+fi
+if $dbus; then
+ $restart || kill -HUP $(cat "$dnsmasq_pid")
+ # Send even if empty so old servers are cleared
+ dbus-send --system --dest=uk.org.thekelleys.dnsmasq \
+ /uk/org/thekelleys/dnsmasq uk.org.thekelleys.SetServers \
+ $dbusdest
+fi
diff -r 8cec458d70ff -r 8e6ce5834e49 external/bsd/openresolv/dist/libc.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/external/bsd/openresolv/dist/libc.in Sat Nov 21 02:40:55 2009 +0000
@@ -0,0 +1,162 @@
+#!/bin/sh
+# Copyright (c) 2007-2009 Roy Marples
+# All rights reserved
+
+# libc subscriber for resolvconf
+
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following
+# disclaimer in the documentation and/or other materials provided
+# with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+SYSCONFDIR=@SYSCONFDIR@
+LIBEXECDIR=@LIBEXECDIR@
+VARDIR=@VARDIR@
+IFACEDIR="$VARDIR/interfaces"
+
+# sed may not be available, and this is faster on small files
+key_get_value()
+{
+ local key="$1" value= x= line=
+
+ shift
+ if [ $# -eq 0 ]; then
+ while read line; do
+ case "$line" in
+ "$key"*) echo "${line##$key}";;
+ esac
+ done
+ else
+ for x; do
+ while read line; do
+ case "$line" in
+ "$key"*) echo "${line##$key}";;
+ esac
+ done < "$x"
+ done
+ fi
+}
+
+# Support original resolvconf configuration layout
+# as well as the openresolv config file
+if [ -f "$SYSCONFDIR"/resolvconf.conf ]; then
+ . "$SYSCONFDIR"/resolvconf.conf
+elif [ -d "$SYSCONFDIR"/resolvconf ]; then
+ SYSCONFDIR="$SYSCONFDIR/resolvconf/resolv.conf.d"
+ base="$SYSCONFDIR/resolv.conf.d/base"
+ if [ -f "$base" ]; then
+ name_servers="$(key_get_value "nameserver " "$base")"
+ search_domains="$(key_get_value "search " "$base")"
+ if [ -z "$search_domains" ]; then
+ search_domains="$(key_get_value "domain " "$base")"
+ fi
+ resolv_conf_options="$(key_get_value "options " "$base")"
+ fi
+ if [ -f "$SYSCONFDIR"/resolv.conf.d/head ]; then
+ resolv_conf_head="$(cat "${SYSCONFDIR}"/resolv.conf.d/head)"
+ fi
+ if [ -f "$SYSCONFDIR"/resolv.conf.d/tail ]; then
+ resolv_conf_tail="$(cat "$SYSCONFDIR"/resolv.conf.d/tail)"
+ fi
+fi
+: ${resolv_conf:=/etc/resolv.conf}
+: ${libc_restart:=@RESTARTCMD nscd@}
+: ${list_resolv:=@PREFIX@/sbin/resolvconf -l}
+if [ "${resolv_conf_head-x}" = x -a -f "$SYSCONFDIR"/resolv.conf.head ]; then
+ resolv_conf_head="$(cat "${SYSCONFDIR}"/resolv.conf.head)"
+fi
+if [ "${resolv_conf_tail-x}" = x -a -f "$SYSCONFDIR"/resolv.conf.tail ]; then
+ resolv_conf_tail="$(cat "$SYSCONFDIR"/resolv.conf.tail)"
+fi
+
+uniqify()
+{
+ local result=
+ while [ -n "$1" ]; do
+ case " $result " in
+ *" $1 "*);;
+ *) result="$result $1";;
+ esac
+ shift
+ done
+ echo "${result# *}"
+}
+
+case "${resolv_conf_passthrough:-NO}" in
+[Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1)
+ newest=
+ for conf in "$IFACEDIR"/*; do
+ if [ -z "$newest" -o "$conf" -nt "$newest" ]; then
+ newest="$conf"
+ fi
+ done
+ [ -z "$newest" ] && exit 0
+ newconf="$(cat "$newest")\n"
+ ;;
+*)
+ [ -z "$RESOLVCONF" ] && eval "$(@PREFIX@/sbin/resolvconf -v)"
+ newsearch="$(uniqify $search_domains $SEARCH)"
+ newns="$(uniqify $name_servers $NAMESERVERS)"
+
+ # Hold our new resolv.conf in a variable to save on temporary files
+ newconf="# Generated by resolvconf\n"
+ if [ -n "$resolv_conf_head" ]; then
+ newconf="$newconf$resolv_conf_head\n"
+ fi
+ [ -n "$newsearch" ] && newconf="${newconf}search $newsearch\n"
+ for n in $newns; do
+ newconf="${newconf}nameserver $n\n"
+ done
+
+ # Now get any configured options
+ opts="$resolv_conf_options${resolv_conf_options:+ }"
+ opts="$opts$($list_resolv | key_get_value "options ")"
+ if [ -n "$opts" ]; then
+ newconf="${newconf}options"
+ for opt in $(uniqify $opts); do
+ newconf="${newconf} $opt"
+ done
+ newconf="$newconf\n"
+ fi
+
+ if [ -n "$resolv_conf_tail" ]; then
+ newconf="$newconf$resolv_conf_tail\n"
+ fi
+ ;;
+esac
+
+# Check if the file has actually changed or not
+if [ -e "$resolv_conf" ]; then
+ [ "$(cat "$resolv_conf")" = "$(printf "$newconf")" ] && exit 0
+fi
+
+# Create our resolv.conf now
+(umask 022; printf "$newconf" >"$resolv_conf")
+eval $libc_restart
+
+retval=0
+# Notify users of the resolver
+for script in "$LIBEXECDIR"/libc.d/*; do
+ if [ -f "$script" -a -x "$script" ]; then
+ "$script" "$@"
+ retval=$(($retval + $?))
+ fi
+done
+exit $retval
diff -r 8cec458d70ff -r 8e6ce5834e49 external/bsd/openresolv/dist/named.in
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/external/bsd/openresolv/dist/named.in Sat Nov 21 02:40:55 2009 +0000
@@ -0,0 +1,80 @@
+#!/bin/sh
+# Copyright (c) 2007-2009 Roy Marples <roy%marples.name@localhost>
+# All rights reserved
+
+# named subscriber for resolvconf
+
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
Home |
Main Index |
Thread Index |
Old Index