From: Michal Privoznik <[email protected]> If a DNS forwarder has port specified then we ought to format it into dnsmasq config. The correct syntax is
server=/domain/ip-address#port Closes: https://gitlab.com/libvirt/libvirt/-/issues/833 Signed-off-by: Michal Privoznik <[email protected]> --- src/network/bridge_driver.c | 6 +++++- tests/networkxml2confdata/nat-network-dns-forwarders.conf | 2 +- tests/networkxml2confdata/nat-network-dns-forwarders.xml | 2 +- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index 34b655e816..8b5dbb3ab7 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -1212,10 +1212,14 @@ networkDnsmasqConfContents(virNetworkObj *obj, virBufferAsprintf(&configbuf, "/%s/", fwd->domain); if (VIR_SOCKET_ADDR_VALID(&fwd->addr)) { g_autofree char *addr = virSocketAddrFormat(&fwd->addr); + int port = virSocketAddrGetPort(&fwd->addr); if (!addr) return -1; - virBufferAsprintf(&configbuf, "%s\n", addr); + virBufferAddStr(&configbuf, addr); + if (port > 0) + virBufferAsprintf(&configbuf, "#%d", port); + virBufferAddChar(&configbuf, '\n'); if (!fwd->domain) addNoResolv = true; } else { diff --git a/tests/networkxml2confdata/nat-network-dns-forwarders.conf b/tests/networkxml2confdata/nat-network-dns-forwarders.conf index 1b0c94c3fb..85d6c6ceb9 100644 --- a/tests/networkxml2confdata/nat-network-dns-forwarders.conf +++ b/tests/networkxml2confdata/nat-network-dns-forwarders.conf @@ -7,7 +7,7 @@ strict-order server=8.8.8.8 server=8.8.4.4 -server=/example.com/192.168.1.1 +server=/example.com/192.168.1.1#1234 server=/www.example.com/# no-resolv except-interface=lo diff --git a/tests/networkxml2confdata/nat-network-dns-forwarders.xml b/tests/networkxml2confdata/nat-network-dns-forwarders.xml index 5d4f3fa697..98d9660b14 100644 --- a/tests/networkxml2confdata/nat-network-dns-forwarders.xml +++ b/tests/networkxml2confdata/nat-network-dns-forwarders.xml @@ -6,7 +6,7 @@ <dns> <forwarder addr='8.8.8.8'/> <forwarder addr='8.8.4.4'/> - <forwarder domain='example.com' addr='192.168.1.1'/> + <forwarder domain='example.com' addr='192.168.1.1' port='1234'/> <forwarder domain='www.example.com'/> </dns> <ip address='192.168.122.1' netmask='255.255.255.0'> -- 2.51.2
