repair DNS address option

Commit

  6f2d222 ("dns: store IPv4 addresses in network byte order")

changed the internal representation of IPv4 address within DNS
settings to network byte order, however later this value is copied into
tuntap_options, where IPv4 addresses are assumed to be in host byte
order (see lots of occurences of "htonl(tt->" in tun.c). As a
consequence, DNS server address is set incorrectly, like 4.4.8.8 instead
of 8.8.4.4

Fix by converting address to host byte order when copying from DNS
options to tuntap_options.

Change-Id: I87e4593e6a548bacd40b840cd241950019fa457d
Signed-off-by: Lev Stipakov <lev@openvpn.net>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <20241224174233.13005-1-gert@greenie.muc.de>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg30195.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
This commit is contained in:
Lev Stipakov 2024-12-24 18:42:33 +01:00 committed by Gert Doering
parent f0c26b02a7
commit 82fd89a04f

View File

@ -1390,7 +1390,7 @@ tuntap_options_copy_dns(struct options *o)
overflow = true;
continue;
}
tt->dns[tt->dns_len++] = server->addr[i].in.a4.s_addr;
tt->dns[tt->dns_len++] = ntohl(server->addr[i].in.a4.s_addr);
}
else
{