lede-packages-rs

git clone git://archive.git.mtrnord.blog/MTRNord/lede-packages-rs.git
Log | Files | Refs | README | LICENSE

commit c19342901aebb31b52f878e2ec4fa7e2daaaa64c
parent 4e216b8b286f29cba6167d1978d944f350e65472
Author: Nikos Mavrogiannopoulos <nmav@gnutls.org>
Date:   Sat, 10 Jan 2015 09:22:36 +0100

openconnect: register split-dns to dnsmasq

Signed-off-by: Nikos Mavrogiannopoulos <nmav@gnutls.org>

Diffstat:
Mnet/openconnect/files/vpnc-script | 23+++++++++++++++++++----
1 file changed, 19 insertions(+), 4 deletions(-)

diff --git a/net/openconnect/files/vpnc-script b/net/openconnect/files/vpnc-script @@ -46,8 +46,7 @@ HOOKS_DIR=/etc/openconnect # Section B: Split DNS handling -# 1) Maybe dnsmasq can do something like that -# 2) Parse dns packets going out via tunnel and redirect them to original dns-server +# 1) We parse CISCO_SPLIT_DNS and use dnsmasq to set it do_connect() { if [ -n "$CISCO_BANNER" ]; then @@ -82,8 +81,23 @@ do_connect() { [[ "$addr" != "$mask" ]] && proto_add_ipv6_address "$addr" "$mask" fi - [ -n "$INTERNAL_IP4_DNS" ] && proto_add_dns_server "$INTERNAL_IP4_DNS" - [ -n "$CISCO_DEF_DOMAIN" ] && proto_add_dns_search "$CISCO_DEF_DOMAIN" + if [ -n "$CISCO_SPLIT_DNS" ] && [ -d "/tmp/dnsmasq.d/" ];then + SDNS=`echo $CISCO_SPLIT_DNS|sed 's/,/\n/g'` + DNSMASQ_FILE="/tmp/dnsmasq.d/openconnect.$TUNDEV" + rm -f $DNSMASQ_FILE + echo "$SDNS" | while read i; do + if [ -n "$INTERNAL_IP4_DNS" ];then + echo "server=/$i/$INTERNAL_IP4_DNS" >> $DNSMASQ_FILE + fi + if [ -n "$INTERNAL_IP6_DNS" ];then + echo "server=/$i/$INTERNAL_IP6_DNS" >> $DNSMASQ_FILE + fi + done + /etc/init.d/dnsmasq restart + else + [ -n "$INTERNAL_IP4_DNS" ] && proto_add_dns_server "$INTERNAL_IP4_DNS" + [ -n "$CISCO_DEF_DOMAIN" ] && proto_add_dns_search "$CISCO_DEF_DOMAIN" + fi if [ -n "$CISCO_SPLIT_INC" ]; then i=0 @@ -120,6 +134,7 @@ do_connect() { } do_disconnect() { + rm -f "/tmp/dnsmasq.d/openconnect.$TUNDEV" proto_init_update "$TUNDEV" 0 proto_send_update "$INTERFACE" }