Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/netbsd-1-6]: src/dist/bind/bin/named Pull up revision 1.12 (requested by...



details:   https://anonhg.NetBSD.org/src/rev/088bdc38b98d
branches:  netbsd-1-6
changeset: 531017:088bdc38b98d
user:      cyber <cyber%NetBSD.org@localhost>
date:      Wed Nov 26 05:04:47 2003 +0000

description:
Pull up revision 1.12 (requested by itojunin ticket #1538):
sync w/ bind837

diffstat:

 dist/bind/bin/named/ns_resp.c |  16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

diffs (75 lines):

diff -r cf49d0514c07 -r 088bdc38b98d dist/bind/bin/named/ns_resp.c
--- a/dist/bind/bin/named/ns_resp.c     Wed Nov 26 05:04:37 2003 +0000
+++ b/dist/bind/bin/named/ns_resp.c     Wed Nov 26 05:04:47 2003 +0000
@@ -1,8 +1,8 @@
-/*     $NetBSD: ns_resp.c,v 1.5.2.4 2003/10/27 04:40:21 jmc Exp $      */
+/*     $NetBSD: ns_resp.c,v 1.5.2.5 2003/11/26 05:04:47 cyber Exp $    */
 
 #if !defined(lint) && !defined(SABER)
 static const char sccsid[] = "@(#)ns_resp.c    4.65 (Berkeley) 3/3/91";
-static const char rcsid[] = "Id: ns_resp.c,v 8.186.6.4 2003/06/02 09:56:35 marka Exp";
+static const char rcsid[] = "Id: ns_resp.c,v 8.186.6.5 2003/09/04 03:03:18 marka Exp";
 #endif /* not lint */
 
 /*
@@ -273,7 +273,7 @@
        int soacount;
        u_int qtype, qclass;
        int validanswer, dbflags;
-       int cname, lastwascname, externalcname;
+       int cname, lastwascname, externalcname, cachenegative;
        int count, founddata, foundname;
        int buflen;
        int newmsglen;
@@ -913,6 +913,7 @@
        cname = 0;
        lastwascname = 0;
        externalcname = 0;
+       cachenegative = 1;
        strcpy(aname, qname);
 
        if (count) {
@@ -982,6 +983,7 @@
                                                 name);
                                db_detach(&dp);
                                validanswer = 0;
+                               cachenegative = 0;
                                continue;
                        }
                        if (type == T_CNAME &&
@@ -1016,6 +1018,7 @@
                                 "last was cname, ignoring auth. and add.");
                                db_detach(&dp);
                                validanswer = 0;
+                               cachenegative = 0;
                                break;
                        }
                        if (i < arfirst) {
@@ -1031,6 +1034,7 @@
                                                        sin_ntoa(from));
                                                db_detach(&dp);
                                                validanswer = 0;
+                                               cachenegative = 0;
                                                continue;
                                        } else if (!ns_samedomain(name,
                                                               qp->q_domain)) {
@@ -1044,6 +1048,7 @@
                                                         sin_ntoa(from));
                                                db_detach(&dp);
                                                validanswer = 0;
+                                               cachenegative = 0;
                                                continue;
                                        }
                                        if (type == T_NS) {
@@ -1207,8 +1212,9 @@
             )
            )
        {
-               cache_n_resp(msg, msglen, from, qp->q_name,
-                            qp->q_class, qp->q_type);
+               if (cachenegative)
+                       cache_n_resp(msg, msglen, from, qp->q_name,
+                                    qp->q_class, qp->q_type);
 
                if (!qp->q_cmsglen && validanswer) {
                        ns_debug(ns_log_default, 3,



Home | Main Index | Thread Index | Old Index