SOURCES: openvpn-update-resolv-conf (NEW) - copied from debian

glen glen at pld-linux.org
Tue Nov 27 23:07:38 CET 2007


Author: glen                         Date: Tue Nov 27 22:07:38 2007 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- copied from debian

---- Files affected:
SOURCES:
   openvpn-update-resolv-conf (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/openvpn-update-resolv-conf
diff -u /dev/null SOURCES/openvpn-update-resolv-conf:1.1
--- /dev/null	Tue Nov 27 23:07:38 2007
+++ SOURCES/openvpn-update-resolv-conf	Tue Nov 27 23:07:33 2007
@@ -0,0 +1,54 @@
+#!/bin/bash
+# 
+# Parses DHCP options from openvpn to update resolv.conf
+# To use set as 'up' and 'down' script in your openvpn *.conf:
+# up /etc/openvpn/update-resolv-conf
+# down /etc/openvpn/update-resolv-conf
+#
+# Used snippets of resolvconf script by Thomas Hood <jdthood at yahoo.co.uk> 
+# and Chris Hanson
+# Licensed under the GNU GPL.  See /usr/share/common-licenses/GPL. 
+#
+# 05/2006 chlauber at 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'
+
+[ -x /sbin/resolvconf ] || exit 0
+
+case $script_type in
+
+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="$part3"
+			fi
+		fi
+	done
+	R=""
+	if [ "$IF_DNS_SEARCH" ] ; then
+        	R="${R}search $IF_DNS_SEARCH
+"
+	fi
+	for NS in $IF_DNS_NAMESERVERS ; do
+        	R="${R}nameserver $NS
+"
+	done
+	echo -n "$R" | /sbin/resolvconf -a "${dev}.inet"
+	;;
+down)
+	/sbin/resolvconf -d "${dev}.inet"
+	;;
+esac
+
================================================================


More information about the pld-cvs-commit mailing list