summaryrefslogtreecommitdiffstats
path: root/contrib/bind/bin
diff options
context:
space:
mode:
authorasmodai <asmodai@FreeBSD.org>2000-11-06 16:10:57 +0000
committerasmodai <asmodai@FreeBSD.org>2000-11-06 16:10:57 +0000
commit43c4a8b07e19a2567390a7f788929e5c908a4d7b (patch)
tree0ff18bb42e00087892612ff5251b941f5f9ff83b /contrib/bind/bin
parent9c741fe8e6df49a6becda42a944de915788f47ee (diff)
downloadFreeBSD-src-43c4a8b07e19a2567390a7f788929e5c908a4d7b.zip
FreeBSD-src-43c4a8b07e19a2567390a7f788929e5c908a4d7b.tar.gz
Fix AA being cleared on notify "queries"
Submitted by: Mark Andrews <marka@nominum.com>
Diffstat (limited to 'contrib/bind/bin')
-rw-r--r--contrib/bind/bin/named/ns_req.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/contrib/bind/bin/named/ns_req.c b/contrib/bind/bin/named/ns_req.c
index d6add30..75d688f 100644
--- a/contrib/bind/bin/named/ns_req.c
+++ b/contrib/bind/bin/named/ns_req.c
@@ -1,6 +1,6 @@
#if !defined(lint) && !defined(SABER)
static const char sccsid[] = "@(#)ns_req.c 4.47 (Berkeley) 7/1/91";
-static const char rcsid[] = "$Id: ns_req.c,v 8.118 2000/07/17 07:57:56 vixie Exp $";
+static const char rcsid[] = "$Id: ns_req.c,v 8.119 2000/08/21 05:57:09 vixie Exp $";
#endif /* not lint */
/*
@@ -271,7 +271,11 @@ ns_req(u_char *msg, int msglen, int buflen, struct qstream *qsp,
* safely assume these are always 0 when a query
* comes in.
*/
- hp->aa = hp->ra = 0;
+#ifdef BIND_NOTIFY
+ if (hp->opcode != ns_o_notify)
+#endif
+ hp->aa = 0;
+ hp->ra = 0;
ra = (NS_OPTION_P(OPTION_NORECURSE) == 0);
if (error == NOERROR)
@@ -460,18 +464,21 @@ req_notify(HEADER *hp, u_char **cpp, u_char *eom, u_char *msg,
char dnbuf[MAXDNAME];
struct zoneinfo *zp;
- /* valid notify's have one question */
- if (ntohs(hp->qdcount) != 1) {
+ /* valid notify's are authoritative */
+ if (!hp->aa) {
ns_debug(ns_log_notify, 1,
- "FORMERR Notify header counts wrong");
+ "FORMERR Notify request without AA");
+#ifdef not_yet
hp->rcode = ns_r_formerr;
return (Finish);
+#endif
}
+ hp->aa = 0;
- /* valid notify's are authoritative */
- if (!hp->aa) {
+ /* valid notify's have one question */
+ if (ntohs(hp->qdcount) != 1) {
ns_debug(ns_log_notify, 1,
- "FORMERR Notify request without AA");
+ "FORMERR Notify header counts wrong");
hp->rcode = ns_r_formerr;
return (Finish);
}
OpenPOWER on IntegriCloud