[BZ #10128]
authorUlrich Drepper <drepper@redhat.com>
Sat, 9 May 2009 16:12:41 +0000 (16:12 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sat, 9 May 2009 16:12:41 +0000 (16:12 +0000)
2009-05-05  Aurelien Jarno  <aurelien@aurel32.net>
[BZ #10128]
* resolv/res_query.c (__libc_res_nquery): If one query returns NOTIMP
or FORMERR and the other NOERROR, don't raise an error.

ChangeLog
resolv/res_query.c

index 4dca208..e1316a0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2009-05-05  Aurelien Jarno  <aurelien@aurel32.net>
+
+       [BZ #10128]
+       * resolv/res_query.c (__libc_res_nquery): If one query returns NOTIMP
+       or FORMERR and the other NOERROR, don't raise an error.
+
 2009-05-06  Ryan S. Arnold  <rsa@us.ibm.com>
 
        [BZ #10118]
index 6ac33ce..9ffb3e3 100644 (file)
@@ -289,6 +289,13 @@ __libc_res_nquery(res_state statp,
                        break;
                case FORMERR:
                case NOTIMP:
+                       /* Servers must not reply to AAAA queries with
+                          NOTIMP etc but some of them do.  */
+                       if ((hp->rcode == NOERROR && ntohs (hp->ancount) != 0)
+                           || (hp2->rcode == NOERROR
+                               && ntohs (hp2->ancount) != 0))
+                               goto success;
+                       /* FALLTHROUGH */
                case REFUSED:
                default:
                        RES_SET_H_ERRNO(statp, NO_RECOVERY);