Commit 48493329 authored by Simon Kelley's avatar Simon Kelley

Update Debian resolvconf script for dnscrypt-proxy integration.

parent 76dd75de
...@@ -2,7 +2,13 @@ dnsmasq (2.67-1) unstable; urgency=low ...@@ -2,7 +2,13 @@ dnsmasq (2.67-1) unstable; urgency=low
* New upstream. * New upstream.
-- Simon Kelley <simon@thekelleys.org.uk> Mon, 20 May 2013 11:50:22 +0000 -- Simon Kelley <simon@thekelleys.org.uk> Tue, 28 May 2013 14:50:22 +0000
dnsmasq (2.66-3) unstable; urgency=low
* Update resolvconf script for dnscrypt-proxy integration. (closes: #709179)
-- Simon Kelley <simon@thekelleys.org.uk> Tue, 28 May 2013 14:39:51 +0000
dnsmasq (2.66-2) unstable; urgency=low dnsmasq (2.66-2) unstable; urgency=low
......
#!/bin/bash #!/bin/sh
# #
# Script to update the resolver list for dnsmasq # Script to update the resolver list for dnsmasq
# #
# N.B. Resolvconf may run us even if dnsmasq is not running. # N.B. Resolvconf may run us even if dnsmasq is not (yet) running.
# If dnsmasq is installed then we go ahead and update # If dnsmasq is installed then we go ahead and update the resolver list
# the resolver list in case dnsmasq is started later. # in case dnsmasq is started later.
# #
# Assumption: On entry, PWD contains the resolv.conf-type files # Assumption: On entry, PWD contains the resolv.conf-type files.
# #
# Requires bash because it uses a non-POSIX printf extension. # This file is part of the dnsmasq package.
#
# Licensed under the GNU GPL. See /usr/share/common-licenses/GPL.
# #
set -e set -e
...@@ -18,6 +16,8 @@ set -e ...@@ -18,6 +16,8 @@ set -e
RUN_DIR="/var/run/dnsmasq" RUN_DIR="/var/run/dnsmasq"
RSLVRLIST_FILE="${RUN_DIR}/resolv.conf" RSLVRLIST_FILE="${RUN_DIR}/resolv.conf"
TMP_FILE="${RSLVRLIST_FILE}_new.$$" TMP_FILE="${RSLVRLIST_FILE}_new.$$"
MY_RECORD_NAME="lo.dnsmasq"
DNSCRYPT_RECORD_NAME="lo.dnscrypt"
[ -x /usr/sbin/dnsmasq ] || exit 0 [ -x /usr/sbin/dnsmasq ] || exit 0
[ -x /lib/resolvconf/list-records ] || exit 1 [ -x /lib/resolvconf/list-records ] || exit 1
...@@ -27,7 +27,7 @@ PATH=/bin:/sbin ...@@ -27,7 +27,7 @@ PATH=/bin:/sbin
report_err() { echo "$0: Error: $*" >&2 ; } report_err() { echo "$0: Error: $*" >&2 ; }
# Stores arguments (minus duplicates) in RSLT, separated by spaces # Stores arguments (minus duplicates) in RSLT, separated by spaces
# Doesn't work properly if an argument itself contain whitespace # Doesn't work properly if an argument itself contains whitespace
uniquify() uniquify()
{ {
RSLT="" RSLT=""
...@@ -45,7 +45,22 @@ if [ ! -d "$RUN_DIR" ] && ! mkdir --parents --mode=0755 "$RUN_DIR" ; then ...@@ -45,7 +45,22 @@ if [ ! -d "$RUN_DIR" ] && ! mkdir --parents --mode=0755 "$RUN_DIR" ; then
exit 1 exit 1
fi fi
RSLVCNFFILES="$(/lib/resolvconf/list-records | sed -e '/^lo.dnsmasq$/d')" RSLVCNFFILES=""
for F in $(/lib/resolvconf/list-records) ; do
case "$F" in
"$MY_RECORD_NAME")
# Omit
;;
"$DNSCRYPT_RECORD_NAME")
# Dnscrypt, I only have eyes for you
RSLVCNFFILES="$DNSCRYPT_RECORD_NAME"
break
;;
*)
RSLVCNFFILES="${RSLVCNFFILES:+$RSLVCNFFILES }$F"
;;
esac
done
NMSRVRS="" NMSRVRS=""
if [ "$RSLVCNFFILES" ] ; then if [ "$RSLVCNFFILES" ] ; then
...@@ -56,8 +71,8 @@ fi ...@@ -56,8 +71,8 @@ fi
# Dnsmasq uses the mtime of $RSLVRLIST_FILE, with a resolution of one second, # Dnsmasq uses the mtime of $RSLVRLIST_FILE, with a resolution of one second,
# to detect changes in the file. This means that if a resolvconf update occurs # to detect changes in the file. This means that if a resolvconf update occurs
# within one second of the previous one then dnsmasq may fail to notice the # within one second of the previous one then dnsmasq may fail to notice the
# more recent change. To work around this problem we sleep here to ensure # more recent change. To work around this problem we sleep one second here
# that the new mtime is different. # if necessary in order to ensure that the new mtime is different.
if [ -f "$RSLVRLIST_FILE" ] && [ "$(ls -go --time-style='+%s' "$RSLVRLIST_FILE" | { read p h s t n ; echo "$t" ; })" = "$(date +%s)" ] ; then if [ -f "$RSLVRLIST_FILE" ] && [ "$(ls -go --time-style='+%s' "$RSLVRLIST_FILE" | { read p h s t n ; echo "$t" ; })" = "$(date +%s)" ] ; then
sleep 1 sleep 1
fi fi
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment