summaryrefslogtreecommitdiff
path: root/debian/update-resolv-conf
diff options
context:
space:
mode:
authorAlberto Gonzalez Iniesta <agi@inittab.org>2013-09-09 16:01:24 +0200
committerAlberto Gonzalez Iniesta <agi@inittab.org>2013-09-09 16:01:24 +0200
commitd8945f5aaffe81957d918f91224c90c9ae64b415 (patch)
treede122a37747c4be5e9aa33aba862bb1f85db5f7f /debian/update-resolv-conf
parentadfca29dda41468207f69c672b9945e023272f1f (diff)
Fixing #721082 and #716794debian/2.3.2-5
Diffstat (limited to 'debian/update-resolv-conf')
-rw-r--r--debian/update-resolv-conf60
1 files changed, 32 insertions, 28 deletions
diff --git a/debian/update-resolv-conf b/debian/update-resolv-conf
index e835ba4..fc2f031 100644
--- a/debian/update-resolv-conf
+++ b/debian/update-resolv-conf
@@ -5,50 +5,54 @@
# up /etc/openvpn/update-resolv-conf
# down /etc/openvpn/update-resolv-conf
#
-# Used snippets of resolvconf script by Thomas Hood <jdthood@yahoo.co.uk>
-# and Chris Hanson
+# Used snippets of resolvconf script by Thomas Hood and Chris Hanson.
# Licensed under the GNU GPL. See /usr/share/common-licenses/GPL.
-#
-# 05/2006 chlauber@bnc.ch
#
# Example envs set from openvpn:
-# foreign_option_1='dhcp-option DNS 193.43.27.132'
-# foreign_option_2='dhcp-option DNS 193.43.27.133'
-# foreign_option_3='dhcp-option DOMAIN be.bnc.ch'
+#
+# foreign_option_1='dhcp-option DNS 193.43.27.132'
+# foreign_option_2='dhcp-option DNS 193.43.27.133'
+# foreign_option_3='dhcp-option DOMAIN be.bnc.ch'
+#
[ -x /sbin/resolvconf ] || exit 0
+[ "$script_type" ] || exit 0
+[ "$dev" ] || exit 0
-case $script_type in
+split_into_parts()
+{
+ part1="$1"
+ part2="$2"
+ part3="$3"
+}
-up)
- for optionname in ${!foreign_option_*} ; do
- option="${!optionname}"
- echo $option
- part1=$(echo "$option" | cut -d " " -f 1)
- if [ "$part1" == "dhcp-option" ] ; then
- part2=$(echo "$option" | cut -d " " -f 2)
- part3=$(echo "$option" | cut -d " " -f 3)
- if [ "$part2" == "DNS" ] ; then
- IF_DNS_NAMESERVERS="$IF_DNS_NAMESERVERS $part3"
- fi
- if [ "$part2" == "DOMAIN" ] ; then
- IF_DNS_SEARCH="$IF_DNS_SEARCH $part3"
+case "$script_type" in
+ up)
+ NMSRVRS=""
+ SRCHS=""
+ for optionvarname in ${!foreign_option_*} ; do
+ option="${!optionvarname}"
+ echo "$option"
+ split_into_parts $option
+ if [ "$part1" = "dhcp-option" ] ; then
+ if [ "$part2" = "DNS" ] ; then
+ NMSRVRS="${NMSRVRS:+$NMSRVRS }$part3"
+ elif [ "$part2" = "DOMAIN" ] ; then
+ SRCHS="${SRCHS:+$SRCHS }$part3"
fi
fi
done
R=""
- for SS in $IF_DNS_SEARCH ; do
- R="${R}search $SS
+ [ "$SRCHS" ] && R="search $SRCHS
"
- done
- for NS in $IF_DNS_NAMESERVERS ; do
+ for NS in $NMSRVRS ; do
R="${R}nameserver $NS
"
done
- echo -n "$R" | /sbin/resolvconf -a "${dev}.inet"
+ echo -n "$R" | /sbin/resolvconf -a "${dev}.openvpn"
;;
-down)
- /sbin/resolvconf -d "${dev}.inet"
+ down)
+ /sbin/resolvconf -d "${dev}.openvpn"
;;
esac