]> git.ipfire.org Git - thirdparty/openvpn.git/commit
Enhance contrib/pull-resolv-conf/client.{up,down} scripts
authorDavide Brini <dave_br@gmx.com>
Mon, 19 Apr 2010 20:41:42 +0000 (22:41 +0200)
committerDavid Sommerseth <dazo@users.sourceforge.net>
Tue, 27 Apr 2010 21:07:38 +0000 (23:07 +0200)
commit5a0a6d6b2de714470d7ddc22ab2c4c13beb9a983
tree164b86245b421f085fbd74314e6505f99e09bc83
parent298cb6f5138af90ad51909501160c10d856bb3f2
Enhance contrib/pull-resolv-conf/client.{up,down} scripts

Patch arrived from Davide Brini:

- No more bashisms (AFAICT). Should work with any POSIX-compatible shell
(which means "almost all reasonably recent shells"), though I've only tested
with bash and dash.

- Unnecessary calls to external tools (sed) removed

- Manages multiple DNS and DOMAIN options. Each DNS option becomes a
"nameserver" line in the new resolv.conf (up to a maximum of 3). If there's a
single DOMAIN option, it becomes a "domain" line in resolv.conf; otherwise,
all the domains are listed in a "search" line in resolv.conf (eg "search
foo.com example.net").

- Client.up renames the existing resolv.conf and creates a brand new one;
client.down restores it from the saved copy when the VPN terminates (the usual
rules about running as root apply). This is how Gentoo does that; the old
scripts instead added/removed some lines at the beginning of the file, which
looks a less clean approach to me. The rename approach also dramatically
simplifies and shortens client.down, as you'll see.

- Uses resolvconf if it's available (detected by the presence of
/sbin/resolvconf) rather than writing to resolv.conf directly. Not sure
whether this is a Linux-only thing or other systems use it though.

Script has been smoke tested on Fedora 12 with OpenVPN 2.1.1 without
the resolvconf package , and in addition Debian Lenny with
OpenVPN 2.1_rc11 according to the patch.

Signed-off-by: Davide Brini <dave_br@gmx.com>
Signed-off-by: David Sommerseth <dazo@users.sourceforge.net>
Acked-by: David Sommerseth <dazo@users.sourceforge.net>
contrib/pull-resolv-conf/client.down
contrib/pull-resolv-conf/client.up