Handle DNS6 option on Android

Patch V2: Prefer IPv6 DNS servers
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <1479814716-20116-1-git-send-email-arne@rfc2549.org>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg13195.html

Signed-off-by: Gert Doering <gert@greenie.muc.de>
This commit is contained in:
Arne Schwabe 2016-11-22 12:38:36 +01:00 committed by Gert Doering
parent 786e06ade9
commit 39b7d4da02
2 changed files with 10 additions and 3 deletions

View File

@ -47,7 +47,8 @@ ROUTE network netmask
To tell the UI which routes should be set on the tun interface.
DNSSERVER serverip
DNSSERVER IP server address
DNS6SERVER IPv6 server address
DNSDOMAIN searchdomain
To set the DNS server and search domain.

View File

@ -1638,14 +1638,20 @@ void
open_tun (const char *dev, const char *dev_type, const char *dev_node, struct tuntap *tt)
{
#define ANDROID_TUNNAME "vpnservice-tun"
int i;
struct user_pass up;
struct gc_arena gc = gc_new ();
bool opentun;
int oldtunfd = tt->fd;
for (i = 0; i < tt->options.dns_len; ++i) {
/* Prefer IPv6 DNS servers,
* Android will use the DNS server in the order we specify*/
for (int i = 0; i < tt->options.dns6_len; i++) {
management_android_control (management, "DNS6SERVER",
print_in6_addr (tt->options.dns6[i], 0, &gc));
}
for (int i = 0; i < tt->options.dns_len; i++) {
management_android_control (management, "DNSSERVER",
print_in_addr_t(tt->options.dns[i], 0, &gc));
}