|
Adam Tkac |
007ac2 |
diff -up bind-9.5.0a6/lib/dns/view.c.edns bind-9.5.0a6/lib/dns/view.c
|
|
Adam Tkac |
007ac2 |
--- bind-9.5.0a6/lib/dns/view.c.edns 2007-06-19 01:47:42.000000000 +0200
|
|
Adam Tkac |
007ac2 |
+++ bind-9.5.0a6/lib/dns/view.c 2007-09-19 17:46:10.000000000 +0200
|
|
Adam Tkac |
007ac2 |
@@ -179,6 +179,7 @@ dns_view_create(isc_mem_t *mctx, dns_rda
|
|
Adam Tkac |
007ac2 |
view->flush = ISC_FALSE;
|
|
Adam Tkac |
007ac2 |
view->dlv = NULL;
|
|
Adam Tkac |
007ac2 |
view->maxudp = 0;
|
|
Adam Tkac |
007ac2 |
+ view->edns = ISC_TRUE;
|
|
Adam Tkac |
007ac2 |
dns_fixedname_init(&view->dlv_fixed);
|
|
Adam Tkac |
007ac2 |
|
|
Adam Tkac |
007ac2 |
result = dns_order_create(view->mctx, &view->order);
|
|
Adam Tkac |
007ac2 |
diff -up bind-9.5.0a6/lib/dns/resolver.c.edns bind-9.5.0a6/lib/dns/resolver.c
|
|
Adam Tkac |
007ac2 |
--- bind-9.5.0a6/lib/dns/resolver.c.edns 2007-09-19 17:46:10.000000000 +0200
|
|
Adam Tkac |
007ac2 |
+++ bind-9.5.0a6/lib/dns/resolver.c 2007-09-19 17:47:19.000000000 +0200
|
|
Adam Tkac |
007ac2 |
@@ -1484,10 +1484,12 @@ resquery_send(resquery_t *query) {
|
|
Adam Tkac |
007ac2 |
* The ADB does not know about servers with "edns no". Check this,
|
|
Adam Tkac |
007ac2 |
* and then inform the ADB for future use.
|
|
Adam Tkac |
007ac2 |
*/
|
|
Adam Tkac |
007ac2 |
- if ((query->addrinfo->flags & DNS_FETCHOPT_NOEDNS0) == 0 &&
|
|
Adam Tkac |
007ac2 |
- peer != NULL &&
|
|
Adam Tkac |
007ac2 |
- dns_peer_getsupportedns(peer, &useedns) == ISC_R_SUCCESS &&
|
|
Adam Tkac |
007ac2 |
- !useedns)
|
|
Adam Tkac |
007ac2 |
+ if (((query->addrinfo->flags & DNS_FETCHOPT_NOEDNS0) == 0 ||
|
|
Adam Tkac |
007ac2 |
+ (query->options & DNS_FETCHOPT_NOEDNS0) == 0) &&
|
|
Adam Tkac |
007ac2 |
+ (!(res->view->edns) ||
|
|
Adam Tkac |
007ac2 |
+ (peer != NULL &&
|
|
Adam Tkac |
007ac2 |
+ dns_peer_getsupportedns(peer, &useedns) == ISC_R_SUCCESS &&
|
|
Adam Tkac |
007ac2 |
+ !useedns)))
|
|
Adam Tkac |
007ac2 |
{
|
|
Adam Tkac |
007ac2 |
query->options |= DNS_FETCHOPT_NOEDNS0;
|
|
Adam Tkac |
007ac2 |
dns_adb_changeflags(fctx->adb,
|
|
Adam Tkac |
007ac2 |
diff -up bind-9.5.0a6/lib/dns/include/dns/view.h.edns bind-9.5.0a6/lib/dns/include/dns/view.h
|
|
Adam Tkac |
007ac2 |
--- bind-9.5.0a6/lib/dns/include/dns/view.h.edns 2007-06-19 01:47:42.000000000 +0200
|
|
Adam Tkac |
007ac2 |
+++ bind-9.5.0a6/lib/dns/include/dns/view.h 2007-09-19 17:46:10.000000000 +0200
|
|
Adam Tkac |
007ac2 |
@@ -137,6 +137,7 @@ struct dns_view {
|
|
Adam Tkac |
007ac2 |
dns_name_t * dlv;
|
|
Adam Tkac |
007ac2 |
dns_fixedname_t dlv_fixed;
|
|
Adam Tkac |
007ac2 |
isc_uint16_t maxudp;
|
|
Adam Tkac |
007ac2 |
+ isc_boolean_t edns;
|
|
Adam Tkac |
007ac2 |
|
|
Adam Tkac |
007ac2 |
/*
|
|
Adam Tkac |
007ac2 |
* Configurable data for server use only,
|
|
Adam Tkac |
007ac2 |
diff -up bind-9.5.0a6/lib/isccfg/namedconf.c.edns bind-9.5.0a6/lib/isccfg/namedconf.c
|
|
Adam Tkac |
007ac2 |
--- bind-9.5.0a6/lib/isccfg/namedconf.c.edns 2007-06-19 01:47:50.000000000 +0200
|
|
Adam Tkac |
007ac2 |
+++ bind-9.5.0a6/lib/isccfg/namedconf.c 2007-09-19 17:46:10.000000000 +0200
|
|
Adam Tkac |
007ac2 |
@@ -618,6 +618,7 @@ options_clauses[] = {
|
|
Adam Tkac |
007ac2 |
{ "deallocate-on-exit", &cfg_type_boolean, CFG_CLAUSEFLAG_OBSOLETE },
|
|
Adam Tkac |
007ac2 |
{ "directory", &cfg_type_qstring, CFG_CLAUSEFLAG_CALLBACK },
|
|
Adam Tkac |
007ac2 |
{ "dump-file", &cfg_type_qstring, 0 },
|
|
Adam Tkac |
007ac2 |
+ { "edns", &cfg_type_boolean, 0 },
|
|
Adam Tkac |
007ac2 |
{ "fake-iquery", &cfg_type_boolean, CFG_CLAUSEFLAG_OBSOLETE },
|
|
Adam Tkac |
007ac2 |
{ "files", &cfg_type_size, 0 },
|
|
Adam Tkac |
007ac2 |
{ "has-old-clients", &cfg_type_boolean, CFG_CLAUSEFLAG_OBSOLETE },
|
|
Adam Tkac |
007ac2 |
diff -up bind-9.5.0a6/doc/misc/options.edns bind-9.5.0a6/doc/misc/options
|
|
Adam Tkac |
007ac2 |
--- bind-9.5.0a6/doc/misc/options.edns 2007-03-29 17:19:20.000000000 +0200
|
|
Adam Tkac |
007ac2 |
+++ bind-9.5.0a6/doc/misc/options 2007-09-19 17:46:10.000000000 +0200
|
|
Adam Tkac |
007ac2 |
@@ -11,6 +11,7 @@ options {
|
|
Adam Tkac |
007ac2 |
deallocate-on-exit <boolean>; // obsolete
|
|
Adam Tkac |
007ac2 |
directory <quoted_string>;
|
|
Adam Tkac |
007ac2 |
dump-file <quoted_string>;
|
|
Adam Tkac |
007ac2 |
+ edns <boolean>;
|
|
Adam Tkac |
007ac2 |
fake-iquery <boolean>; // obsolete
|
|
Adam Tkac |
007ac2 |
files <size>;
|
|
Adam Tkac |
007ac2 |
has-old-clients <boolean>; // obsolete
|
|
Adam Tkac |
007ac2 |
diff -up bind-9.5.0a6/bin/named/config.c.edns bind-9.5.0a6/bin/named/config.c
|
|
Adam Tkac |
007ac2 |
--- bind-9.5.0a6/bin/named/config.c.edns 2007-06-19 01:47:18.000000000 +0200
|
|
Adam Tkac |
007ac2 |
+++ bind-9.5.0a6/bin/named/config.c 2007-09-19 17:46:10.000000000 +0200
|
|
Adam Tkac |
007ac2 |
@@ -137,6 +137,7 @@ options {\n\
|
|
Adam Tkac |
007ac2 |
acache-enable no;\n\
|
|
Adam Tkac |
007ac2 |
acache-cleaning-interval 60;\n\
|
|
Adam Tkac |
007ac2 |
max-acache-size 0;\n\
|
|
Adam Tkac |
007ac2 |
+ edns yes;\n\
|
|
Adam Tkac |
007ac2 |
dnssec-enable yes;\n\
|
|
Adam Tkac |
007ac2 |
dnssec-validation no; /* Make yes for 9.5. */ \n\
|
|
Adam Tkac |
007ac2 |
dnssec-accept-expired no;\n\
|
|
Adam Tkac |
007ac2 |
diff -up bind-9.5.0a6/bin/named/server.c.edns bind-9.5.0a6/bin/named/server.c
|
|
Adam Tkac |
007ac2 |
--- bind-9.5.0a6/bin/named/server.c.edns 2007-09-19 17:46:10.000000000 +0200
|
|
Adam Tkac |
007ac2 |
+++ bind-9.5.0a6/bin/named/server.c 2007-09-19 17:46:10.000000000 +0200
|
|
Adam Tkac |
007ac2 |
@@ -1624,7 +1624,12 @@ configure_view(dns_view_t *view, const c
|
|
Adam Tkac |
007ac2 |
dns_resolver_setclientsperquery(view->resolver,
|
|
Adam Tkac |
007ac2 |
cfg_obj_asuint32(obj),
|
|
Adam Tkac |
007ac2 |
max_clients_per_query);
|
|
Adam Tkac |
007ac2 |
-
|
|
Adam Tkac |
007ac2 |
+
|
|
Adam Tkac |
007ac2 |
+ obj = NULL;
|
|
Adam Tkac |
007ac2 |
+ result = ns_config_get(maps, "edns", &obj);
|
|
Adam Tkac |
007ac2 |
+ INSIST(result == ISC_R_SUCCESS);
|
|
Adam Tkac |
007ac2 |
+ view->edns = cfg_obj_asboolean(obj);
|
|
Adam Tkac |
007ac2 |
+
|
|
Adam Tkac |
007ac2 |
obj = NULL;
|
|
Adam Tkac |
007ac2 |
result = ns_config_get(maps, "dnssec-enable", &obj);
|
|
Adam Tkac |
007ac2 |
INSIST(result == ISC_R_SUCCESS);
|
|
Adam Tkac |
007ac2 |
diff -up bind-9.5.0a6/bin/named/named.conf.5.edns bind-9.5.0a6/bin/named/named.conf.5
|
|
Adam Tkac |
007ac2 |
--- bind-9.5.0a6/bin/named/named.conf.5.edns 2007-06-20 04:27:32.000000000 +0200
|
|
Adam Tkac |
007ac2 |
+++ bind-9.5.0a6/bin/named/named.conf.5 2007-09-19 17:46:10.000000000 +0200
|
|
Adam Tkac |
007ac2 |
@@ -160,6 +160,7 @@ options {
|
|
Adam Tkac |
007ac2 |
datasize \fIsize\fR;
|
|
Adam Tkac |
007ac2 |
directory \fIquoted_string\fR;
|
|
Adam Tkac |
007ac2 |
dump\-file \fIquoted_string\fR;
|
|
Adam Tkac |
007ac2 |
+ edns \fIboolean\fR;
|
|
Adam Tkac |
007ac2 |
files \fIsize\fR;
|
|
Adam Tkac |
007ac2 |
heartbeat\-interval \fIinteger\fR;
|
|
Adam Tkac |
007ac2 |
host\-statistics \fIboolean\fR; // not implemented
|