BIND 8 bug? (Protocol not supported)

Mark_Andrews at isc.org Mark_Andrews at isc.org
Tue Feb 17 22:19:01 UTC 2004


> <Mark_Andrews at isc.org> wrote:
> 
> > I suspect you are seeing the side effects of this which will
> > only be visible on timeouts if you only have a single nameserver
> > in resolv.conf.
> >
> > 1594.   [bug]           if only a single nameserver was listed in
> resolv.conf
> >                         IPv6 default server was also being used.
> 
> So it is related to a resolver, not named?
> 
> Paraphrasing, may i leave original 8.3.7-REL on its place
> and everything's gonna be allright, or do i have to update
> named? There will be no local users on this server. Just
> a single named process serving customers' queries.
> 
> It seems to me your patch helped resolving NS RRs
> of 194.in-addr.arpa zone, but i'm still having problems
> contacting a particular site:
> 
> 5:45pm phobos:src# dig 194.in-addr.arpa ns @ns.ripe.net
> 
> ; <<>> DiG 8.3 <<>> 194.in-addr.arpa ns @ns.ripe.net
> ; (2 servers found)
> ;; res options: init recurs defnam dnsrch
> ;; res_nsend: Protocol not supported
> 5:45pm phobos:src#
> 
> I forgot to mention - i don't have any IPv6 interfaces.
> 
> > --
> > Mark Andrews, ISC
> > 1 Seymour St., Dundas Valley, NSW 2117, Australia
> > PHONE: +61 2 9871 4742                 INTERNET: Mark.Andrews at isc.org
> 
> --
> Pavel V. Knyazev

	Try the following.

	Mark

Index: lib/resolv/res_send.c
===================================================================
RCS file: /proj/cvs/prod/bind8/src/lib/resolv/res_send.c,v
retrieving revision 8.53
diff -u -r8.53 res_send.c
--- lib/resolv/res_send.c	16 Jan 2004 02:01:37 -0000	8.53
+++ lib/resolv/res_send.c	17 Feb 2004 22:15:24 -0000
@@ -434,8 +434,17 @@
 			try = statp->retry;
 			n = send_vc(statp, buf, buflen, ans, anssiz, &terrno,
 				    ns);
-			if (n < 0)
+			if (n < 0) {
+				switch (errno) {
+				case EPROTONOSUPPORT:
+				case EPFNOSUPPORT:
+				case EAFNOSUPPORT:
+					goto next_ns;
+				default:
+					goto fail;
+				}
 				goto fail;
+			}
 			if (n == 0)
 				goto next_ns;
 			resplen = n;
@@ -443,8 +452,16 @@
 			/* Use datagrams. */
 			n = send_dg(statp, buf, buflen, ans, anssiz, &terrno,
 				    ns, &v_circuit, &gotsomewhere);
-			if (n < 0)
-				goto fail;
+			if (n < 0) {
+				switch (errno) {
+				case EPROTONOSUPPORT:
+				case EPFNOSUPPORT:
+				case EAFNOSUPPORT:
+					goto next_ns;
+				default:
+					goto fail;
+				}
+			}
 			if (n == 0)
 				goto next_ns;
 			if (v_circuit)
--
Mark Andrews, ISC
1 Seymour St., Dundas Valley, NSW 2117, Australia
PHONE: +61 2 9871 4742                 INTERNET: Mark.Andrews at isc.org


More information about the bind-users mailing list