Index: contrib/bind/Version =================================================================== RCS file: /tmp/ncvs/src/contrib/bind/Version,v retrieving revision 1.1.1.12 diff -c -r1.1.1.12 Version *** contrib/bind/Version 17 Jun 2003 08:23:21 -0000 1.1.1.12 --- contrib/bind/Version 26 Nov 2003 16:44:32 -0000 *************** *** 1 **** ! 8.3.6-REL --- 1 ---- ! 8.3.6-REL-p1 Index: contrib/bind/bin/named/ns_resp.c =================================================================== RCS file: /tmp/ncvs/src/contrib/bind/bin/named/ns_resp.c,v retrieving revision 1.1.1.12 diff -c -r1.1.1.12 ns_resp.c *** contrib/bind/bin/named/ns_resp.c 17 Jun 2003 08:23:57 -0000 1.1.1.12 --- contrib/bind/bin/named/ns_resp.c 26 Nov 2003 16:49:41 -0000 *************** *** 271,277 **** int soacount; u_int qtype, qclass; int validanswer, dbflags; ! int cname, lastwascname, externalcname; int count, founddata, foundname; int buflen; int newmsglen; --- 271,277 ---- int soacount; u_int qtype, qclass; int validanswer, dbflags; ! int cname, lastwascname, externalcname, cachenegative; int count, founddata, foundname; int buflen; int newmsglen; *************** *** 911,916 **** --- 911,917 ---- cname = 0; lastwascname = 0; externalcname = 0; + cachenegative = 1; strcpy(aname, qname); if (count) { *************** *** 980,985 **** --- 981,987 ---- name); db_detach(&dp); validanswer = 0; + cachenegative = 0; continue; } if (type == T_CNAME && *************** *** 1014,1019 **** --- 1016,1022 ---- "last was cname, ignoring auth. and add."); db_detach(&dp); validanswer = 0; + cachenegative = 0; break; } if (i < arfirst) { *************** *** 1029,1034 **** --- 1032,1038 ---- sin_ntoa(from)); db_detach(&dp); validanswer = 0; + cachenegative = 0; continue; } else if (!ns_samedomain(name, qp->q_domain)) { *************** *** 1042,1047 **** --- 1046,1052 ---- sin_ntoa(from)); db_detach(&dp); validanswer = 0; + cachenegative = 0; continue; } if (type == T_NS) { *************** *** 1205,1212 **** ) ) { ! 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, --- 1210,1218 ---- ) ) { ! 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,