[PATCH v2 4/5] gresolv: Use compile time defined DNS with lookup + UDP connect

Jussi Laakkonen <[email protected]> Sat, 9 May 2026 16:47:37 +0300
Newsgroups dev.linux.lists.connman
Message-ID <[email protected]>
Drop use of hardcoded DNS servers and use the ones defined in compile
time. This makes systemd-resolved use to work better.
---
 gweb/gresolv.c | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/gweb/gresolv.c b/gweb/gresolv.c
index 8101d718..7bfb4ad8 100644
--- a/gweb/gresolv.c
+++ b/gweb/gresolv.c
@@ -809,7 +809,7 @@ static int connect_udp_channel(struct resolv_nameserver *nameserver)
 	 * bind the socket on any interface.
 	 */
 	if (nameserver->resolv->index > 0 &&
-			strncmp(nameserver->address, "127.0.0.1", 9) != 0) {
+			strncmp(nameserver->address, DNS_BACKEND_V4, 9) != 0) {
 		char interface[IF_NAMESIZE];
 
 		memset(interface, 0, IF_NAMESIZE);
@@ -1044,8 +1044,13 @@ guint g_resolv_lookup_hostname(GResolv *resolv, const char *hostname,
 				g_resolv_add_nameserver(resolv, buf, 53, 0);
 		}
 
-		if (!resolv->nameserver_list)
-			g_resolv_add_nameserver(resolv, "127.0.0.1", 53, 0);
+		if (!resolv->nameserver_list) {
+			g_resolv_add_nameserver(resolv, DNS_BACKEND_V4, 53, 0);
+/* systemd-resolved listens only in one address, use IPv6 with internal DNS */
+#ifndef SYSTEMD_RESOLVED_DNS_BACKEND
+			g_resolv_add_nameserver(resolv, DNS_BACKEND_V6, 53, 0);
+#endif
+		}
 	}
 
 	lookup = g_try_new0(struct resolv_lookup, 1);
-- 
2.47.3