Adam Tkac df14f08
diff -up bind-9.5.0b3/lib/dns/resolver.c.edns bind-9.5.0b3/lib/dns/resolver.c
Adam Tkac df14f08
--- bind-9.5.0b3/lib/dns/resolver.c.edns	2008-05-13 08:55:43.000000000 +0200
Adam Tkac df14f08
+++ bind-9.5.0b3/lib/dns/resolver.c	2008-05-13 08:58:12.000000000 +0200
Adam Tkac df14f08
@@ -1552,13 +1552,16 @@ resquery_send(resquery_t *query) {
Adam Tkac df14f08
 	    dns_peer_getsupportedns(peer, &useedns) == ISC_R_SUCCESS &&
Adam Tkac df14f08
 	    !useedns)
Adam Tkac df14f08
 	{
Adam Tkac df14f08
-		query->options |= DNS_FETCHOPT_NOEDNS0;
Adam Tkac df14f08
 		dns_adb_changeflags(fctx->adb,
Adam Tkac df14f08
 				    query->addrinfo,
Adam Tkac df14f08
 				    DNS_FETCHOPT_NOEDNS0,
Adam Tkac df14f08
 				    DNS_FETCHOPT_NOEDNS0);
Adam Tkac df14f08
 	}
Adam Tkac df14f08
 
Adam Tkac df14f08
+	/* Sync query->options and query->addrinfo->flags now */
Adam Tkac df14f08
+	if ((query->addrinfo->flags & DNS_FETCHOPT_NOEDNS0) != 0)
Adam Tkac df14f08
+		query->options |= DNS_FETCHOPT_NOEDNS0;
Adam Tkac df14f08
+
Adam Tkac df14f08
 	/*
Adam Tkac df14f08
 	 * Use EDNS0, unless the caller doesn't want it, or we know that
Adam Tkac df14f08
 	 * the remote server doesn't like it.