dns: store IPv4 addresses in network byte order

This is done so that inet_ntop(3) can be used with IPv4 name server
addresses. It expects the binary address in network byte order. If they
are not that way the address octets are reversed.

Change-Id: I81d4bb0abdd421f5ba260c10c610918652334a4d
Signed-off-by: Heiko Hund <heiko@ist.eigentlich.net>
Acked-by: Frank Lichtenheld <frank@lichtenheld.com>
Message-Id: <20241213164552.265863-1-frank@lichtenheld.com>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg30111.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
This commit is contained in:
Heiko Hund 2024-12-13 17:45:52 +01:00 committed by Gert Doering
parent baa9192851
commit 6f2d222c92

View file

@ -121,7 +121,7 @@ dns_server_addr_parse(struct dns_server *server, const char *addr)
if (ai->ai_family == AF_INET)
{
struct sockaddr_in *sin = (struct sockaddr_in *)ai->ai_addr;
server->addr[server->addr_count].in.a4.s_addr = ntohl(sin->sin_addr.s_addr);
server->addr[server->addr_count].in.a4.s_addr = sin->sin_addr.s_addr;
}
else
{
@ -384,7 +384,7 @@ setenv_dns_options(const struct dns_options *o, struct env_set *es)
if (s->addr[j].family == AF_INET)
{
setenv_dns_option(es, "dns_server_%d_address_%d", i, j + 1,
print_in_addr_t(s->addr[j].in.a4.s_addr, 0, &gc));
print_in_addr_t(s->addr[j].in.a4.s_addr, IA_NET_ORDER, &gc));
}
else
{
@ -443,7 +443,7 @@ show_dns_options(const struct dns_options *o)
const char *fmt_port;
if (server->addr[j].family == AF_INET)
{
addr = print_in_addr_t(server->addr[j].in.a4.s_addr, 0, &gc);
addr = print_in_addr_t(server->addr[j].in.a4.s_addr, IA_NET_ORDER, &gc);
fmt_port = " address = %s:%s";
}
else