summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bind-9.5-edns.patch103
-rw-r--r--bind.spec7
2 files changed, 109 insertions, 1 deletions
diff --git a/bind-9.5-edns.patch b/bind-9.5-edns.patch
new file mode 100644
index 0000000..ec4c920
--- /dev/null
+++ b/bind-9.5-edns.patch
@@ -0,0 +1,103 @@
+diff -up bind-9.5.0a6/lib/dns/view.c.edns bind-9.5.0a6/lib/dns/view.c
+--- bind-9.5.0a6/lib/dns/view.c.edns 2007-06-19 01:47:42.000000000 +0200
++++ bind-9.5.0a6/lib/dns/view.c 2007-09-19 17:46:10.000000000 +0200
+@@ -179,6 +179,7 @@ dns_view_create(isc_mem_t *mctx, dns_rda
+ view->flush = ISC_FALSE;
+ view->dlv = NULL;
+ view->maxudp = 0;
++ view->edns = ISC_TRUE;
+ dns_fixedname_init(&view->dlv_fixed);
+
+ result = dns_order_create(view->mctx, &view->order);
+diff -up bind-9.5.0a6/lib/dns/resolver.c.edns bind-9.5.0a6/lib/dns/resolver.c
+--- bind-9.5.0a6/lib/dns/resolver.c.edns 2007-09-19 17:46:10.000000000 +0200
++++ bind-9.5.0a6/lib/dns/resolver.c 2007-09-19 17:47:19.000000000 +0200
+@@ -1484,10 +1484,12 @@ resquery_send(resquery_t *query) {
+ * The ADB does not know about servers with "edns no". Check this,
+ * and then inform the ADB for future use.
+ */
+- if ((query->addrinfo->flags & DNS_FETCHOPT_NOEDNS0) == 0 &&
+- peer != NULL &&
+- dns_peer_getsupportedns(peer, &useedns) == ISC_R_SUCCESS &&
+- !useedns)
++ if (((query->addrinfo->flags & DNS_FETCHOPT_NOEDNS0) == 0 ||
++ (query->options & DNS_FETCHOPT_NOEDNS0) == 0) &&
++ (!(res->view->edns) ||
++ (peer != NULL &&
++ dns_peer_getsupportedns(peer, &useedns) == ISC_R_SUCCESS &&
++ !useedns)))
+ {
+ query->options |= DNS_FETCHOPT_NOEDNS0;
+ dns_adb_changeflags(fctx->adb,
+diff -up bind-9.5.0a6/lib/dns/include/dns/view.h.edns bind-9.5.0a6/lib/dns/include/dns/view.h
+--- bind-9.5.0a6/lib/dns/include/dns/view.h.edns 2007-06-19 01:47:42.000000000 +0200
++++ bind-9.5.0a6/lib/dns/include/dns/view.h 2007-09-19 17:46:10.000000000 +0200
+@@ -137,6 +137,7 @@ struct dns_view {
+ dns_name_t * dlv;
+ dns_fixedname_t dlv_fixed;
+ isc_uint16_t maxudp;
++ isc_boolean_t edns;
+
+ /*
+ * Configurable data for server use only,
+diff -up bind-9.5.0a6/lib/isccfg/namedconf.c.edns bind-9.5.0a6/lib/isccfg/namedconf.c
+--- bind-9.5.0a6/lib/isccfg/namedconf.c.edns 2007-06-19 01:47:50.000000000 +0200
++++ bind-9.5.0a6/lib/isccfg/namedconf.c 2007-09-19 17:46:10.000000000 +0200
+@@ -618,6 +618,7 @@ options_clauses[] = {
+ { "deallocate-on-exit", &cfg_type_boolean, CFG_CLAUSEFLAG_OBSOLETE },
+ { "directory", &cfg_type_qstring, CFG_CLAUSEFLAG_CALLBACK },
+ { "dump-file", &cfg_type_qstring, 0 },
++ { "edns", &cfg_type_boolean, 0 },
+ { "fake-iquery", &cfg_type_boolean, CFG_CLAUSEFLAG_OBSOLETE },
+ { "files", &cfg_type_size, 0 },
+ { "has-old-clients", &cfg_type_boolean, CFG_CLAUSEFLAG_OBSOLETE },
+diff -up bind-9.5.0a6/doc/misc/options.edns bind-9.5.0a6/doc/misc/options
+--- bind-9.5.0a6/doc/misc/options.edns 2007-03-29 17:19:20.000000000 +0200
++++ bind-9.5.0a6/doc/misc/options 2007-09-19 17:46:10.000000000 +0200
+@@ -11,6 +11,7 @@ options {
+ deallocate-on-exit <boolean>; // obsolete
+ directory <quoted_string>;
+ dump-file <quoted_string>;
++ edns <boolean>;
+ fake-iquery <boolean>; // obsolete
+ files <size>;
+ has-old-clients <boolean>; // obsolete
+diff -up bind-9.5.0a6/bin/named/config.c.edns bind-9.5.0a6/bin/named/config.c
+--- bind-9.5.0a6/bin/named/config.c.edns 2007-06-19 01:47:18.000000000 +0200
++++ bind-9.5.0a6/bin/named/config.c 2007-09-19 17:46:10.000000000 +0200
+@@ -137,6 +137,7 @@ options {\n\
+ acache-enable no;\n\
+ acache-cleaning-interval 60;\n\
+ max-acache-size 0;\n\
++ edns yes;\n\
+ dnssec-enable yes;\n\
+ dnssec-validation no; /* Make yes for 9.5. */ \n\
+ dnssec-accept-expired no;\n\
+diff -up bind-9.5.0a6/bin/named/server.c.edns bind-9.5.0a6/bin/named/server.c
+--- bind-9.5.0a6/bin/named/server.c.edns 2007-09-19 17:46:10.000000000 +0200
++++ bind-9.5.0a6/bin/named/server.c 2007-09-19 17:46:10.000000000 +0200
+@@ -1624,7 +1624,12 @@ configure_view(dns_view_t *view, const c
+ dns_resolver_setclientsperquery(view->resolver,
+ cfg_obj_asuint32(obj),
+ max_clients_per_query);
+-
++
++ obj = NULL;
++ result = ns_config_get(maps, "edns", &obj);
++ INSIST(result == ISC_R_SUCCESS);
++ view->edns = cfg_obj_asboolean(obj);
++
+ obj = NULL;
+ result = ns_config_get(maps, "dnssec-enable", &obj);
+ INSIST(result == ISC_R_SUCCESS);
+diff -up bind-9.5.0a6/bin/named/named.conf.5.edns bind-9.5.0a6/bin/named/named.conf.5
+--- bind-9.5.0a6/bin/named/named.conf.5.edns 2007-06-20 04:27:32.000000000 +0200
++++ bind-9.5.0a6/bin/named/named.conf.5 2007-09-19 17:46:10.000000000 +0200
+@@ -160,6 +160,7 @@ options {
+ datasize \fIsize\fR;
+ directory \fIquoted_string\fR;
+ dump\-file \fIquoted_string\fR;
++ edns \fIboolean\fR;
+ files \fIsize\fR;
+ heartbeat\-interval \fIinteger\fR;
+ host\-statistics \fIboolean\fR; // not implemented
diff --git a/bind.spec b/bind.spec
index f15b005..556596f 100644
--- a/bind.spec
+++ b/bind.spec
@@ -21,7 +21,7 @@ Summary: The Berkeley Internet Name Domain (BIND) DNS (Domain Name System) serv
Name: bind
License: ISC
Version: 9.5.0
-Release: 13.%{RELEASEVER}%{?dist}
+Release: 14.%{RELEASEVER}%{?dist}
Epoch: 32
Url: http://www.isc.org/products/BIND/
Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -65,6 +65,7 @@ Patch72: bind-9.5-dlz-64bit.patch
Patch75: bind-9.5-update.patch
Patch78: bind-9.5-pool_badfree.patch
Patch79: bind-9.5-_res_errno.patch
+Patch80: bind-9.5-edns.patch
# SDB patches
Patch11: bind-9.3.2b2-sdbsrc.patch
@@ -244,6 +245,7 @@ cp -fp contrib/dbus/{dbus_mgr.h,dbus_service.h} bin/named/include/named
%patch75 -p1 -b .update
%patch78 -p1 -b .badfree
%patch79 -p1 -b .errno
+%patch80 -p1 -b .edns
:;
@@ -643,6 +645,9 @@ rm -rf ${RPM_BUILD_ROOT}
%{_sbindir}/bind-chroot-admin
%changelog
+* Mon Sep 24 2007 Adam Tkac <atkac redhat com> 32:9.5.0-14.a6
+- added edns patch again (#275091)
+
* Mon Sep 24 2007 Adam Tkac <atkac redhat com> 32:9.5.0-13.a6
- removed bind-9.3.3-edns.patch patch (see #275091 for reasons)