]> git.pld-linux.org Git - packages/openvpn.git/blame - openvpn-update-resolv-conf
- release 2
[packages/openvpn.git] / openvpn-update-resolv-conf
CommitLineData
98b3d698
ER
1#!/bin/bash
2#
3# Parses DHCP options from openvpn to update resolv.conf
4# To use set as 'up' and 'down' script in your openvpn *.conf:
5ae938dc
ER
5# up /usr/lib/openvpn/update-resolv-conf
6# down /usr/lib/openvpn/update-resolv-conf
98b3d698
ER
7#
8# Used snippets of resolvconf script by Thomas Hood <jdthood@yahoo.co.uk>
9# and Chris Hanson
5ae938dc 10# Licensed under the GNU GPL.
98b3d698
ER
11#
12# 05/2006 chlauber@bnc.ch
13#
14# Example envs set from openvpn:
15# foreign_option_1='dhcp-option DNS 193.43.27.132'
16# foreign_option_2='dhcp-option DNS 193.43.27.133'
17# foreign_option_3='dhcp-option DOMAIN be.bnc.ch'
18
19[ -x /sbin/resolvconf ] || exit 0
20
21case $script_type in
22
23up)
24 for optionname in ${!foreign_option_*} ; do
25 option="${!optionname}"
26 echo $option
27 part1=$(echo "$option" | cut -d " " -f 1)
28 if [ "$part1" == "dhcp-option" ] ; then
29 part2=$(echo "$option" | cut -d " " -f 2)
30 part3=$(echo "$option" | cut -d " " -f 3)
31 if [ "$part2" == "DNS" ] ; then
32 IF_DNS_NAMESERVERS="$IF_DNS_NAMESERVERS $part3"
33 fi
34 if [ "$part2" == "DOMAIN" ] ; then
35 IF_DNS_SEARCH="$part3"
36 fi
37 fi
38 done
39 R=""
40 if [ "$IF_DNS_SEARCH" ] ; then
41 R="${R}search $IF_DNS_SEARCH
42"
43 fi
44 for NS in $IF_DNS_NAMESERVERS ; do
45 R="${R}nameserver $NS
46"
47 done
48 echo -n "$R" | /sbin/resolvconf -a "${dev}.inet"
49 ;;
50down)
51 /sbin/resolvconf -d "${dev}.inet"
52 ;;
53esac
54
This page took 0.033508 seconds and 4 git commands to generate.