TKEY queries with an owner name other than the root
could cause an assertion failure. [RT #1866, #1869]
+1033. [bug] Always respond to requests with an unsupported opcode
+ with NOTIMP, even if we don't have a matching view
+ or cannot determine the class.
+
--- 9.2.0rc6 released ---
1031. [bug] libbind.a: isc__gettimeofday() infinite recursion.
* WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-/* $Id: client.c,v 1.176.2.3 2001/10/12 18:20:14 gson Exp $ */
+/* $Id: client.c,v 1.176.2.4 2001/10/12 19:14:47 gson Exp $ */
#include <config.h>
int match;
dns_messageid_t id;
unsigned int flags;
+ isc_boolean_t notimp;
REQUIRE(event != NULL);
client = event->ev_arg;
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;
/*
"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;
}
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;
}