mirror of
https://github.com/isc-projects/bind9.git
synced 2026-06-11 05:59:59 -04:00
1033. [bug] Don't imply that we support a opcode that we don't
when we don't have a matching view or cannot
determine the class.
This commit is contained in:
parent
6c6ceac1bc
commit
d5169236b7
2 changed files with 20 additions and 3 deletions
4
CHANGES
4
CHANGES
|
|
@ -1,3 +1,7 @@
|
|||
1033. [bug] Don't imply that we support a opcode that we don't
|
||||
when we don't have a matching view or cannot
|
||||
determine the class.
|
||||
|
||||
1032. [func] hostname.bind/txt/chaos now returns the name of
|
||||
the machine hosting the nameserver. This is useful
|
||||
in diagnosing problems with anycast servers.
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
/* $Id: client.c,v 1.179 2001/10/01 18:53:56 gson Exp $ */
|
||||
/* $Id: client.c,v 1.180 2001/10/09 02:05:55 marka Exp $ */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
|
|
@ -1061,6 +1061,7 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
|||
int match;
|
||||
dns_messageid_t id;
|
||||
unsigned int flags;
|
||||
isc_boolean_t notimp;
|
||||
|
||||
REQUIRE(event != NULL);
|
||||
client = event->ev_arg;
|
||||
|
|
@ -1208,6 +1209,18 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
|||
goto cleanup;
|
||||
}
|
||||
|
||||
switch (client->message->opcode) {
|
||||
case dns_opcode_query:
|
||||
case dns_opcode_update:
|
||||
case dns_opcode_notify:
|
||||
notimp = ISC_FALSE;
|
||||
break;
|
||||
case dns_opcode_iquery:
|
||||
default:
|
||||
notimp = ISC_TRUE;
|
||||
break;
|
||||
}
|
||||
|
||||
client->message->rcode = dns_rcode_noerror;
|
||||
|
||||
/*
|
||||
|
|
@ -1261,7 +1274,7 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
|||
"message class could not be determined");
|
||||
ns_client_dumpmessage(client,
|
||||
"message class could not be determined");
|
||||
ns_client_error(client, DNS_R_FORMERR);
|
||||
ns_client_error(client, notimp ? DNS_R_NOTIMP : DNS_R_FORMERR);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
|
|
@ -1310,7 +1323,7 @@ client_request(isc_task_t *task, isc_event_t *event) {
|
|||
NS_LOGMODULE_CLIENT, ISC_LOG_DEBUG(1),
|
||||
"no matching view in class '%s'", classname);
|
||||
ns_client_dumpmessage(client, "no matching view in class");
|
||||
ns_client_error(client, DNS_R_REFUSED);
|
||||
ns_client_error(client, notimp ? DNS_R_NOTIMP : DNS_R_REFUSED);
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue