summaryrefslogtreecommitdiffstats
path: root/bind97-rh714049.patch
diff options
context:
space:
mode:
authorAdam Tkac <atkac@redhat.com>2012-10-11 13:34:19 +0200
committerAdam Tkac <atkac@redhat.com>2012-10-11 13:34:19 +0200
commitd6323c1def4505ce1e2879f0d1cc0a668cc090ed (patch)
treef56636441ef232a791f6b86938419b9be7041c3b /bind97-rh714049.patch
parent2aeaf22a1af794d3a844a84c349945054861daa0 (diff)
Update to 9.9.2
- bind97-rh714049.patch has been dropped - patches merged - bind98-rh816164.patch Signed-off-by: Adam Tkac <atkac@redhat.com>
Diffstat (limited to 'bind97-rh714049.patch')
-rw-r--r--bind97-rh714049.patch160
1 files changed, 0 insertions, 160 deletions
diff --git a/bind97-rh714049.patch b/bind97-rh714049.patch
deleted file mode 100644
index 77ed806..0000000
--- a/bind97-rh714049.patch
+++ /dev/null
@@ -1,160 +0,0 @@
-diff -up bind-9.7.3-P3/bin/nsupdate/nsupdate.c.rh714049 bind-9.7.3-P3/bin/nsupdate/nsupdate.c
---- bind-9.7.3-P3/bin/nsupdate/nsupdate.c.rh714049 2011-08-12 14:17:39.520175003 +0200
-+++ bind-9.7.3-P3/bin/nsupdate/nsupdate.c 2011-08-12 15:11:01.812173573 +0200
-@@ -109,6 +109,13 @@ extern int h_errno;
-
- #define DNSDEFAULTPORT 53
-
-+/*
-+ * Assume that bind9_getaddresses returns IPv6 and IPv4 addrs
-+ * so when master server is not reachable via IPv6
-+ * we can switch to IPv4.
-+ */
-+#define MAX_SERVERADDRS 4
-+
- static isc_uint16_t dnsport = DNSDEFAULTPORT;
-
- #ifndef RESOLV_CONF
-@@ -151,6 +158,8 @@ static isc_sockaddr_t *servers;
- static int ns_inuse = 0;
- static int ns_total = 0;
- static isc_sockaddr_t *userserver = NULL;
-+static int curserver = 0;
-+static int userservers = 0;
- static isc_sockaddr_t *localaddr = NULL;
- static isc_sockaddr_t *serveraddr = NULL;
- static isc_sockaddr_t tempaddr;
-@@ -703,7 +712,8 @@ doshutdown(void) {
- isc_task_detach(&global_task);
-
- if (userserver != NULL)
-- isc_mem_put(mctx, userserver, sizeof(isc_sockaddr_t));
-+ isc_mem_put(mctx, userserver,
-+ MAX_SERVERADDRS * sizeof(isc_sockaddr_t));
-
- if (localaddr != NULL)
- isc_mem_put(mctx, localaddr, sizeof(isc_sockaddr_t));
-@@ -914,17 +924,21 @@ setup_system(void) {
- }
-
- static void
--get_address(char *host, in_port_t port, isc_sockaddr_t *sockaddr) {
-+get_addresses(char *host, in_port_t port, isc_sockaddr_t *sockaddr, int *naddrs) {
- int count;
- isc_result_t result;
-
- isc_app_block();
-- result = bind9_getaddresses(host, port, sockaddr, 1, &count);
-+ result = bind9_getaddresses(host, port, sockaddr,
-+ (naddrs == NULL) ? 1 : MAX_SERVERADDRS, &count);
- isc_app_unblock();
- if (result != ISC_R_SUCCESS)
- fatal("couldn't get address for '%s': %s",
- host, isc_result_totext(result));
-- INSIST(count == 1);
-+ if (naddrs == NULL)
-+ INSIST(count == 1);
-+ else
-+ *naddrs = count;
- }
-
- #define PARSE_ARGS_FMT "dDML:y:ghlovk:p:rR::t:u:"
-@@ -1364,12 +1378,14 @@ evaluate_server(char *cmdline) {
- }
-
- if (userserver == NULL) {
-- userserver = isc_mem_get(mctx, sizeof(isc_sockaddr_t));
-+ userserver = isc_mem_get(mctx,
-+ MAX_SERVERADDRS * sizeof(isc_sockaddr_t));
- if (userserver == NULL)
- fatal("out of memory");
- }
-
-- get_address(server, (in_port_t)port, userserver);
-+ memset(userserver, 0, MAX_SERVERADDRS * sizeof(isc_sockaddr_t));
-+ get_addresses(server, (in_port_t)port, userserver, &userservers);
-
- return (STATUS_MORE);
- }
-@@ -2207,19 +2223,25 @@ recvsoa(isc_task_t *task, isc_event_t *e
-
- if (eresult != ISC_R_SUCCESS) {
- char addrbuf[ISC_SOCKADDR_FORMATSIZE];
-+ isc_sockaddr_t *server;
-
- isc_sockaddr_format(addr, addrbuf, sizeof(addrbuf));
- fprintf(stderr, "; Communication with %s failed: %s\n",
- addrbuf, isc_result_totext(eresult));
-- if (userserver != NULL)
-- fatal("could not talk to specified name server");
-- else if (++ns_inuse >= lwconf->nsnext)
-+ if (userserver != NULL) {
-+ if (++curserver == MAX_SERVERADDRS)
-+ fatal("could not talk to specified name server");
-+ else
-+ ddebug("recvsoa: trying next server");
-+ } else if (++ns_inuse >= lwconf->nsnext)
- fatal("could not talk to any default name server");
- ddebug("Destroying request [%p]", request);
- dns_request_destroy(&request);
- dns_message_renderreset(soaquery);
- dns_message_settsigkey(soaquery, NULL);
-- sendrequest(localaddr, &servers[ns_inuse], soaquery, &request);
-+ server = (userserver != NULL) ? &userserver[curserver] :
-+ &servers[ns_inuse];
-+ sendrequest(localaddr, server, soaquery, &request);
- isc_mem_put(mctx, reqinfo, sizeof(nsu_requestinfo_t));
- isc_event_free(&event);
- setzoneclass(dns_rdataclass_none);
-@@ -2351,7 +2373,7 @@ recvsoa(isc_task_t *task, isc_event_t *e
- }
-
- if (userserver != NULL)
-- serveraddr = userserver;
-+ serveraddr = &userserver[curserver];
- else {
- char serverstr[DNS_NAME_MAXTEXT+1];
- isc_buffer_t buf;
-@@ -2360,7 +2382,7 @@ recvsoa(isc_task_t *task, isc_event_t *e
- result = dns_name_totext(&master, ISC_TRUE, &buf);
- check_result(result, "dns_name_totext");
- serverstr[isc_buffer_usedlength(&buf)] = 0;
-- get_address(serverstr, dnsport, &tempaddr);
-+ get_addresses(serverstr, dnsport, &tempaddr, NULL);
- serveraddr = &tempaddr;
- }
- dns_rdata_freestruct(&soa);
-@@ -2464,9 +2486,9 @@ start_gssrequest(dns_name_t *master)
- fatal("out of memory");
- }
- if (userserver == NULL)
-- get_address(namestr, dnsport, kserver);
-+ get_addresses(namestr, dnsport, kserver, NULL);
- else
-- (void)memcpy(kserver, userserver, sizeof(isc_sockaddr_t));
-+ (void)memcpy(kserver, &userserver[curserver], sizeof(isc_sockaddr_t));
-
- dns_fixedname_init(&fname);
- servname = dns_fixedname_name(&fname);
-@@ -2594,15 +2616,17 @@ recvgss(isc_task_t *task, isc_event_t *e
- isc_sockaddr_format(addr, addrbuf, sizeof(addrbuf));
- fprintf(stderr, "; Communication with %s failed: %s\n",
- addrbuf, isc_result_totext(eresult));
-- if (userserver != NULL)
-+ if (userserver != NULL) {
- fatal("could not talk to specified name server");
-- else if (++ns_inuse >= lwconf->nsnext)
-+ } else if (++ns_inuse >= lwconf->nsnext)
- fatal("could not talk to any default name server");
- ddebug("Destroying request [%p]", request);
- dns_request_destroy(&request);
- dns_message_renderreset(tsigquery);
-- sendrequest(localaddr, &servers[ns_inuse], tsigquery,
-- &request);
-+ sendrequest(localaddr,
-+ (userserver != NULL) ? &userserver[curserver] :
-+ &servers[ns_inuse],
-+ tsigquery, &request);
- isc_mem_put(mctx, reqinfo, sizeof(nsu_gssinfo_t));
- isc_event_free(&event);
- return;