From 9dbbf53ecc15d043d050befa6c5c143481511c1b Mon Sep 17 00:00:00 2001 From: Adam Tkac Date: Fri, 18 Feb 2011 15:41:12 +0100 Subject: [PATCH] Update to 9.7.3 + minor fixes. - fix dig +trace on dualstack systems (#674334) - fix linkage order when building on system with older BIND (#665971) - reduce number of gcc warnings Signed-off-by: Adam Tkac --- .gitignore | 1 + bind.spec | 20 +- bind97-cleanup.patch | 444 ++++++++++++++++++++++++++++++++++++++++++ bind97-rh665971.patch | 24 +++ bind97-rh674334.patch | 122 ++++++++++++ sources | 2 +- 6 files changed, 608 insertions(+), 5 deletions(-) create mode 100644 bind97-cleanup.patch create mode 100644 bind97-rh665971.patch create mode 100644 bind97-rh674334.patch diff --git a/.gitignore b/.gitignore index ef8f8e3..fe44837 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ bind-9.7.2b1.tar.gz /bind-9.7.2-P3.tar.gz /bind-9.7.3b1.tar.gz /bind-9.7.3rc1.tar.gz +/bind-9.7.3.tar.gz diff --git a/bind.spec b/bind.spec index d77ad3a..aae116d 100644 --- a/bind.spec +++ b/bind.spec @@ -3,10 +3,10 @@ # #%define PATCHVER P3 -%define PREVER rc1 -#%define VERSION %{version} +#%define PREVER rc1 #%define VERSION %{version}-%{PATCHVER} -%define VERSION %{version}%{PREVER} +#%define VERSION %{version}%{PREVER} +%define VERSION %{version} %{?!SDB: %define SDB 1} %{?!test: %define test 0} @@ -22,7 +22,7 @@ Summary: The Berkeley Internet Name Domain (BIND) DNS (Domain Name System) serv Name: bind License: ISC Version: 9.7.3 -Release: 0.6.%{PREVER}%{?dist} +Release: 1%{?dist} Epoch: 32 Url: http://www.isc.org/products/BIND/ Buildroot:%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -61,6 +61,9 @@ Patch109:bind97-rh478718.patch Patch110:bind97-rh570851.patch Patch111:bind97-exportlib.patch Patch112:bind97-rh645544.patch +Patch113:bind97-rh674334.patch +Patch114:bind97-rh665971.patch +Patch115:bind97-cleanup.patch # SDB patches Patch11: bind-9.3.2b2-sdbsrc.patch @@ -296,6 +299,9 @@ mkdir m4 %patch110 -p1 -b .rh570851 %patch111 -p1 -b .exportlib %patch112 -p1 -b .rh645544 +%patch113 -p1 -b .rh674334 +%patch114 -p1 -b .rh665971 +%patch115 -p1 -b .cleanup # Sparc and s390 arches need to use -fPIE %ifarch sparcv9 sparc64 s390 s390x @@ -764,6 +770,12 @@ rm -rf ${RPM_BUILD_ROOT} %endif %changelog +* Fri Feb 18 2011 Adam Tkac 32:9.7.3-1 +- update to 9.7.3 +- fix dig +trace on dualstack systems (#674334) +- fix linkage order when building on system with older BIND (#665971) +- reduce number of gcc warnings + * Mon Feb 07 2011 Fedora Release Engineering - 32:9.7.3-0.6.rc1 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild diff --git a/bind97-cleanup.patch b/bind97-cleanup.patch new file mode 100644 index 0000000..6103237 --- /dev/null +++ b/bind97-cleanup.patch @@ -0,0 +1,444 @@ +diff -up bind-9.7.3/bin/dig/dighost.c.cleanup bind-9.7.3/bin/dig/dighost.c +--- bind-9.7.3/bin/dig/dighost.c.cleanup 2011-02-18 15:28:59.505352049 +0100 ++++ bind-9.7.3/bin/dig/dighost.c 2011-02-18 15:29:22.065302188 +0100 +@@ -4300,7 +4300,6 @@ opentmpkey(isc_mem_t *mctx, const char * + char *tempnamekey = NULL; + int tempnamelen; + int tempnamekeylen; +- char *x; + char *cp; + isc_uint32_t which; + +@@ -4323,11 +4322,11 @@ opentmpkey(isc_mem_t *mctx, const char * + return (ISC_R_FAILURE); + } + +- x = cp--; ++ cp--; + while (cp >= tempname && *cp == 'X') { + isc_random_get(&which); + *cp = alphnum[which % (sizeof(alphnum) - 1)]; +- x = cp--; ++ cp--; + } + + tempnamekeylen = tempnamelen+5; +diff -up bind-9.7.3/bin/dnssec/dnssec-signzone.c.cleanup bind-9.7.3/bin/dnssec/dnssec-signzone.c +--- bind-9.7.3/bin/dnssec/dnssec-signzone.c.cleanup 2011-02-18 15:29:34.615274529 +0100 ++++ bind-9.7.3/bin/dnssec/dnssec-signzone.c 2011-02-18 15:29:51.075239402 +0100 +@@ -1467,7 +1467,6 @@ verifyzone(void) { + isc_boolean_t done = ISC_FALSE; + isc_boolean_t first = ISC_TRUE; + isc_boolean_t goodksk = ISC_FALSE; +- isc_boolean_t goodzsk = ISC_FALSE; + isc_result_t result; + unsigned char revoked_ksk[256]; + unsigned char revoked_zsk[256]; +@@ -1569,7 +1568,6 @@ verifyzone(void) { + #endif + if (zsk_algorithms[dnskey.algorithm] != 255) + zsk_algorithms[dnskey.algorithm]++; +- goodzsk = ISC_TRUE; + } else { + if (standby_zsk[dnskey.algorithm] != 255) + standby_zsk[dnskey.algorithm]++; +diff -up bind-9.7.3/bin/named/server.c.cleanup bind-9.7.3/bin/named/server.c +--- bind-9.7.3/bin/named/server.c.cleanup 2011-02-18 15:27:38.565530746 +0100 ++++ bind-9.7.3/bin/named/server.c 2011-02-18 15:27:55.065494317 +0100 +@@ -1413,7 +1413,6 @@ configure_view(dns_view_t *view, cfg_par + isc_uint32_t max_clients_per_query; + const char *sep = ": view "; + const char *viewname = view->name; +- const char *forview = " for view "; + isc_boolean_t rfc1918; + isc_boolean_t empty_zones_enable; + const cfg_obj_t *disablelist = NULL; +@@ -1458,7 +1457,6 @@ configure_view(dns_view_t *view, cfg_par + if (!strcmp(viewname, "_default")) { + sep = ""; + viewname = ""; +- forview = ""; + } + + /* +diff -up bind-9.7.3/contrib/dlz/drivers/dlz_postgres_driver.c.cleanup bind-9.7.3/contrib/dlz/drivers/dlz_postgres_driver.c +--- bind-9.7.3/contrib/dlz/drivers/dlz_postgres_driver.c.cleanup 2011-02-18 15:28:16.135447795 +0100 ++++ bind-9.7.3/contrib/dlz/drivers/dlz_postgres_driver.c 2011-02-18 15:28:43.815387080 +0100 +@@ -292,8 +292,10 @@ postgres_get_resultset(const char *zone, + unsigned int i = 0; + unsigned int j = 0; + ++#if 0 + /* temporarily get a unique thread # */ + unsigned int dlz_thread_num = 1+(int) (1000.0*rand()/(RAND_MAX+1.0)); ++#endif + + REQUIRE(*rs == NULL); + +diff -up bind-9.7.3/lib/bind9/check.c.cleanup bind-9.7.3/lib/bind9/check.c +--- bind-9.7.3/lib/bind9/check.c.cleanup 2011-02-18 15:26:31.305679252 +0100 ++++ bind-9.7.3/lib/bind9/check.c 2011-02-18 15:27:21.205572047 +0100 +@@ -1818,8 +1818,6 @@ check_trusted_key(const cfg_obj_t *key, + isc_log_t *logctx) + { + const char *keystr, *keynamestr; +- dns_fixedname_t fkeyname; +- dns_name_t *keyname; + isc_buffer_t keydatabuf; + isc_region_t r; + isc_result_t result = ISC_R_SUCCESS; +@@ -1830,7 +1828,6 @@ check_trusted_key(const cfg_obj_t *key, + flags = cfg_obj_asuint32(cfg_tuple_get(key, "flags")); + proto = cfg_obj_asuint32(cfg_tuple_get(key, "protocol")); + alg = cfg_obj_asuint32(cfg_tuple_get(key, "algorithm")); +- keyname = dns_fixedname_name(&fkeyname); + keynamestr = cfg_obj_asstring(cfg_tuple_get(key, "name")); + + if (flags > 0xffff) { +diff -up bind-9.7.3/lib/dns/adb.c.cleanup bind-9.7.3/lib/dns/adb.c +--- bind-9.7.3/lib/dns/adb.c.cleanup 2011-02-18 15:18:50.436696481 +0100 ++++ bind-9.7.3/lib/dns/adb.c 2011-02-18 15:19:16.686638556 +0100 +@@ -1853,7 +1853,6 @@ check_expire_name(dns_adbname_t **namep, + static void + check_stale_name(dns_adb_t *adb, int bucket, isc_stdtime_t now) { + int victims, max_victims; +- isc_boolean_t result; + dns_adbname_t *victim, *next_victim; + isc_boolean_t overmem = isc_mem_isovermem(adb->mctx); + int scans = 0; +@@ -1875,7 +1874,7 @@ check_stale_name(dns_adb_t *adb, int buc + INSIST(!NAME_DEAD(victim)); + scans++; + next_victim = ISC_LIST_PREV(victim, plink); +- result = check_expire_name(&victim, now); ++ (void) check_expire_name(&victim, now); + if (victim == NULL) { + victims++; + goto next; +diff -up bind-9.7.3/lib/dns/diff.c.cleanup bind-9.7.3/lib/dns/diff.c +--- bind-9.7.3/lib/dns/diff.c.cleanup 2011-02-18 15:20:02.006538543 +0100 ++++ bind-9.7.3/lib/dns/diff.c 2011-02-18 15:20:28.426480612 +0100 +@@ -264,7 +264,6 @@ diff_apply(dns_diff_t *diff, dns_db_t *d + dns_rdataset_t rds; + dns_rdataset_t ardataset; + dns_rdataset_t *modified = NULL; +- isc_boolean_t offline; + + op = t->op; + type = t->rdata.type; +@@ -301,7 +300,6 @@ diff_apply(dns_diff_t *diff, dns_db_t *d + CHECK(dns_db_findnsec3node(db, name, ISC_TRUE, + &node)); + +- offline = ISC_FALSE; + while (t != NULL && + dns_name_equal(&t->name, name) && + t->op == op && +@@ -323,8 +321,6 @@ diff_apply(dns_diff_t *diff, dns_db_t *d + namebuf, typebuf, classbuf, + (unsigned long) t->ttl, + (unsigned long) rdl.ttl); +- if (t->rdata.flags & DNS_RDATA_OFFLINE) +- offline = ISC_TRUE; + ISC_LIST_APPEND(rdl.rdata, &t->rdata, link); + t = ISC_LIST_NEXT(t, link); + } +diff -up bind-9.7.3/lib/dns/dnssec.c.cleanup bind-9.7.3/lib/dns/dnssec.c +--- bind-9.7.3/lib/dns/dnssec.c.cleanup 2011-02-18 15:20:39.306456222 +0100 ++++ bind-9.7.3/lib/dns/dnssec.c 2011-02-18 15:21:31.896340160 +0100 +@@ -1068,7 +1068,6 @@ isc_result_t + dns_dnsseckey_create(isc_mem_t *mctx, dst_key_t **dstkey, + dns_dnsseckey_t **dkp) + { +- isc_result_t result; + dns_dnsseckey_t *dk; + int major, minor; + +@@ -1094,7 +1093,7 @@ dns_dnsseckey_create(isc_mem_t *mctx, ds + dk->ksk = ISC_TF((dst_key_flags(dk->key) & DNS_KEYFLAG_KSK) != 0); + + /* Is this an old-style key? */ +- result = dst_key_getprivateformat(dk->key, &major, &minor); ++ (void) dst_key_getprivateformat(dk->key, &major, &minor); + + /* Smart signing started with key format 1.3 */ + dk->legacy = ISC_TF(major == 1 && minor <= 2); +@@ -1673,9 +1672,6 @@ dns_dnssec_updatekeys(dns_dnsseckeylist_ + + /* No match found in keys; add the new key. */ + if (key2 == NULL) { +- dns_dnsseckey_t *next; +- +- next = ISC_LIST_NEXT(key1, link); + ISC_LIST_UNLINK(*newkeys, key1, link); + ISC_LIST_APPEND(*keys, key1, link); + +diff -up bind-9.7.3/lib/dns/gssapictx.c.cleanup bind-9.7.3/lib/dns/gssapictx.c +--- bind-9.7.3/lib/dns/gssapictx.c.cleanup 2011-02-18 15:25:53.975761658 +0100 ++++ bind-9.7.3/lib/dns/gssapictx.c 2011-02-18 15:26:05.945735228 +0100 +@@ -119,7 +119,6 @@ name_to_gbuffer(dns_name_t *name, isc_bu + { + dns_name_t tname, *namep; + isc_region_t r; +- isc_result_t result; + + if (!dns_name_isabsolute(name)) + namep = name; +@@ -132,7 +131,7 @@ name_to_gbuffer(dns_name_t *name, isc_bu + namep = &tname; + } + +- result = dns_name_toprincipal(namep, buffer); ++ (void) dns_name_toprincipal(namep, buffer); + isc_buffer_putuint8(buffer, 0); + isc_buffer_usedregion(buffer, &r); + REGION_TO_GBUFFER(r, *gbuffer); +diff -up bind-9.7.3/lib/dns/rdata/generic/dlv_32769.c.cleanup bind-9.7.3/lib/dns/rdata/generic/dlv_32769.c +--- bind-9.7.3/lib/dns/rdata/generic/dlv_32769.c.cleanup 2011-02-18 15:22:02.456272719 +0100 ++++ bind-9.7.3/lib/dns/rdata/generic/dlv_32769.c 2011-02-18 15:22:27.126218257 +0100 +@@ -33,7 +33,6 @@ static inline isc_result_t + fromtext_dlv(ARGS_FROMTEXT) { + isc_token_t token; + unsigned char c; +- int length; + + REQUIRE(type == 32769); + +@@ -71,15 +70,6 @@ fromtext_dlv(ARGS_FROMTEXT) { + RETERR(uint8_tobuffer(token.value.as_ulong, target)); + c = (unsigned char) token.value.as_ulong; + +- /* +- * Digest. +- */ +- if (c == DNS_DSDIGEST_SHA1) +- length = ISC_SHA1_DIGESTLENGTH; +- else if (c == DNS_DSDIGEST_SHA256) +- length = ISC_SHA256_DIGESTLENGTH; +- else +- length = -1; + return (isc_hex_tobuffer(lexer, target, -1)); + } + +diff -up bind-9.7.3/lib/dns/request.c.cleanup bind-9.7.3/lib/dns/request.c +--- bind-9.7.3/lib/dns/request.c.cleanup 2011-02-18 15:22:40.566188593 +0100 ++++ bind-9.7.3/lib/dns/request.c 2011-02-18 15:23:25.766088820 +0100 +@@ -428,12 +428,10 @@ req_send(dns_request_t *request, isc_tas + isc_region_t r; + isc_socket_t *socket; + isc_result_t result; +- unsigned int dispattr; + + req_log(ISC_LOG_DEBUG(3), "req_send: request %p", request); + + REQUIRE(VALID_REQUEST(request)); +- dispattr = dns_dispatch_getattributes(request->dispatch); + socket = req_getsocket(request); + isc_buffer_usedregion(request->query, &r); + /* +diff -up bind-9.7.3/lib/dns/tkey.c.cleanup bind-9.7.3/lib/dns/tkey.c +--- bind-9.7.3/lib/dns/tkey.c.cleanup 2011-02-18 15:23:35.386067584 +0100 ++++ bind-9.7.3/lib/dns/tkey.c 2011-02-18 15:23:52.796029159 +0100 +@@ -70,10 +70,9 @@ static void + _dns_tkey_dumpmessage(dns_message_t *msg) { + isc_buffer_t outbuf; + unsigned char output[4096]; +- isc_result_t result; + + isc_buffer_init(&outbuf, output, sizeof(output)); +- result = dns_message_totext(msg, &dns_master_style_debug, 0, ++ (void) dns_message_totext(msg, &dns_master_style_debug, 0, + &outbuf); + /* XXXMLG ignore result */ + fprintf(stderr, "%.*s\n", (int)isc_buffer_usedlength(&outbuf), +diff -up bind-9.7.3/lib/dns/validator.c.cleanup bind-9.7.3/lib/dns/validator.c +--- bind-9.7.3/lib/dns/validator.c.cleanup 2011-02-18 15:24:02.276008230 +0100 ++++ bind-9.7.3/lib/dns/validator.c 2011-02-18 15:24:20.245971006 +0100 +@@ -1223,7 +1223,6 @@ authvalidated(isc_task_t *task, isc_even + dns_validatorevent_t *devent; + dns_validator_t *val; + dns_rdataset_t *rdataset; +- dns_rdataset_t *sigrdataset; + isc_boolean_t want_destroy; + isc_result_t result; + isc_boolean_t exists, data; +@@ -1233,7 +1232,6 @@ authvalidated(isc_task_t *task, isc_even + + devent = (dns_validatorevent_t *)event; + rdataset = devent->rdataset; +- sigrdataset = devent->sigrdataset; + val = devent->ev_arg; + result = devent->result; + dns_validator_destroy(&val->subvalidator); +diff -up bind-9.7.3/lib/dns/zone.c.cleanup bind-9.7.3/lib/dns/zone.c +--- bind-9.7.3/lib/dns/zone.c.cleanup 2011-02-18 15:24:33.825938590 +0100 ++++ bind-9.7.3/lib/dns/zone.c 2011-02-18 15:25:38.275796311 +0100 +@@ -5647,11 +5647,11 @@ zone_nsec3chain(dns_zone_t *zone) { + dns_nsec3chainlist_t cleanup; + dst_key_t *zone_keys[MAXZONEKEYS]; + isc_int32_t signatures; +- isc_boolean_t check_ksk, keyset_kskonly, is_ksk; ++ isc_boolean_t check_ksk, keyset_kskonly; + isc_boolean_t delegation; + isc_boolean_t first; + isc_result_t result; +- isc_stdtime_t now, inception, soaexpire, expire, stop; ++ isc_stdtime_t now, inception, soaexpire, expire; + isc_uint32_t jitter; + unsigned int i; + unsigned int nkeys = 0; +@@ -5716,7 +5716,6 @@ zone_nsec3chain(dns_zone_t *zone) { + */ + isc_random_get(&jitter); + expire = soaexpire - jitter % 3600; +- stop = now + 5; + + check_ksk = DNS_ZONE_OPTION(zone, DNS_ZONEOPT_UPDATECHECKKSK); + keyset_kskonly = DNS_ZONE_OPTION(zone, DNS_ZONEOPT_DNSKEYKSKONLY); +@@ -5762,7 +5761,6 @@ zone_nsec3chain(dns_zone_t *zone) { + if (NSEC3REMOVE(nsec3chain->nsec3param.flags)) + goto next_addchain; + +- is_ksk = ISC_FALSE; + delegation = ISC_FALSE; + dns_dbiterator_current(nsec3chain->dbiterator, &node, name); + +@@ -6481,12 +6479,11 @@ zone_sign(dns_zone_t *zone) { + isc_boolean_t build_nsec3 = ISC_FALSE; + isc_boolean_t first; + isc_result_t result; +- isc_stdtime_t now, inception, soaexpire, expire, stop; ++ isc_stdtime_t now, inception, soaexpire, expire; + isc_uint32_t jitter; + unsigned int i, j; + unsigned int nkeys = 0; + isc_uint32_t nodes; +- isc_boolean_t was_ksk; + + dns_rdataset_init(&rdataset); + dns_fixedname_init(&fixed); +@@ -6538,7 +6535,6 @@ zone_sign(dns_zone_t *zone) { + */ + isc_random_get(&jitter); + expire = soaexpire - jitter % 3600; +- stop = now + 5; + + /* + * We keep pulling nodes off each iterator in turn until +@@ -6583,8 +6579,6 @@ zone_sign(dns_zone_t *zone) { + + delegation = ISC_FALSE; + +- was_ksk = ISC_FALSE; +- + if (first && signing->delete) { + /* + * Remove the key we are deleting from consideration. +diff -up bind-9.7.3/lib/isc/httpd.c.cleanup bind-9.7.3/lib/isc/httpd.c +--- bind-9.7.3/lib/isc/httpd.c.cleanup 2011-02-18 15:17:22.936889562 +0100 ++++ bind-9.7.3/lib/isc/httpd.c 2011-02-18 15:17:55.846816943 +0100 +@@ -912,7 +912,6 @@ isc_httpd_senddone(isc_task_t *task, isc + { + isc_httpd_t *httpd = ev->ev_arg; + isc_region_t r; +- isc_result_t result; + isc_socketevent_t *sev = (isc_socketevent_t *)ev; + + ENTER("senddone"); +@@ -963,8 +962,8 @@ isc_httpd_senddone(isc_task_t *task, isc + + r.base = (unsigned char *)httpd->recvbuf; + r.length = HTTP_RECVLEN - 1; +- result = isc_socket_recv(httpd->sock, &r, 1, task, isc_httpd_recvdone, +- httpd); ++ (void) isc_socket_recv(httpd->sock, &r, 1, task, isc_httpd_recvdone, ++ httpd); + + out: + isc_event_free(&ev); +diff -up bind-9.7.3/lib/isc/string.c.cleanup bind-9.7.3/lib/isc/string.c +--- bind-9.7.3/lib/isc/string.c.cleanup 2011-02-18 15:18:09.786786183 +0100 ++++ bind-9.7.3/lib/isc/string.c 2011-02-18 15:18:31.016739337 +0100 +@@ -167,12 +167,11 @@ isc_string_printf(char *target, size_t s + void + isc_string_printf_truncate(char *target, size_t size, const char *format, ...) { + va_list args; +- size_t n; + + REQUIRE(size > 0U); + + va_start(args, format); +- n = vsnprintf(target, size, format, args); ++ (void) vsnprintf(target, size, format, args); + va_end(args); + + ENSURE(strlen(target) < size); +diff -up bind-9.7.3/lib/isc/timer.c.cleanup bind-9.7.3/lib/isc/timer.c +--- bind-9.7.3/lib/isc/timer.c.cleanup 2011-02-18 15:30:32.385146946 +0100 ++++ bind-9.7.3/lib/isc/timer.c 2011-02-18 15:31:22.585036094 +0100 +@@ -333,7 +333,9 @@ schedule(isc__timer_t *timer, isc_time_t + + static inline void + deschedule(isc__timer_t *timer) { ++#ifdef USE_TIMER_THREAD + isc_boolean_t need_wakeup = ISC_FALSE; ++#endif /* USE_TIMER_THREAD */ + isc__timermgr_t *manager; + + /* +@@ -342,8 +344,10 @@ deschedule(isc__timer_t *timer) { + + manager = timer->manager; + if (timer->index > 0) { ++#ifdef USE_TIMER_THREAD + if (timer->index == 1) + need_wakeup = ISC_TRUE; ++#endif /* USE_TIMER_THREAD */ + isc_heap_delete(manager->heap, timer->index); + timer->index = 0; + INSIST(manager->nscheduled > 0); +diff -up bind-9.7.3/lib/isc/unix/socket.c.cleanup bind-9.7.3/lib/isc/unix/socket.c +--- bind-9.7.3/lib/isc/unix/socket.c.cleanup 2011-02-18 15:15:10.247182323 +0100 ++++ bind-9.7.3/lib/isc/unix/socket.c 2011-02-18 15:16:48.806964868 +0100 +@@ -2751,7 +2751,6 @@ isc__socket_close(isc_socket_t *sock0) { + isc__socket_t *sock = (isc__socket_t *)sock0; + int fd; + isc__socketmgr_t *manager; +- isc_sockettype_t type; + + REQUIRE(VALID_SOCKET(sock)); + +@@ -2771,7 +2770,6 @@ isc__socket_close(isc_socket_t *sock0) { + INSIST(sock->connect_ev == NULL); + + manager = sock->manager; +- type = sock->type; + fd = sock->fd; + sock->fd = -1; + memset(sock->name, 0, sizeof(sock->name)); +@@ -3689,7 +3687,6 @@ static isc_threadresult_t + watcher(void *uap) { + isc__socketmgr_t *manager = uap; + isc_boolean_t done; +- int ctlfd; + int cc; + #ifdef USE_KQUEUE + const char *fnname = "kevent()"; +@@ -3701,6 +3698,7 @@ watcher(void *uap) { + #elif defined (USE_SELECT) + const char *fnname = "select()"; + int maxfd; ++ int ctlfd; + #endif + char strbuf[ISC_STRERRORSIZE]; + #ifdef ISC_SOCKET_USE_POLLWATCH +@@ -3710,7 +3708,9 @@ watcher(void *uap) { + /* + * Get the control fd here. This will never change. + */ ++#ifdef USE_SELECT + ctlfd = manager->pipe_fds[0]; ++#endif + done = ISC_FALSE; + while (!done) { + do { diff --git a/bind97-rh665971.patch b/bind97-rh665971.patch new file mode 100644 index 0000000..6171ec5 --- /dev/null +++ b/bind97-rh665971.patch @@ -0,0 +1,24 @@ +diff -up bind-9.7.3/lib/isccc/Makefile.in.rh665971 bind-9.7.3/lib/isccc/Makefile.in +--- bind-9.7.3/lib/isccc/Makefile.in.rh665971 2011-02-18 15:01:28.718993909 +0100 ++++ bind-9.7.3/lib/isccc/Makefile.in 2011-02-18 15:01:41.718965257 +0100 +@@ -71,7 +71,7 @@ libisccc.la: ${OBJS} + ${LIBTOOL_MODE_LINK} \ + ${CC} ${ALL_CFLAGS} ${LDFLAGS} -o libisccc.la -rpath ${libdir} \ + -version-info ${LIBINTERFACE}:${LIBREVISION}:${LIBAGE} \ +- ${OBJS} ${LIBS} ${ISCLIBS} ++ ${OBJS} ${ISCLIBS} ${LIBS} + + timestamp: libisccc.@A@ + touch timestamp +diff -up bind-9.7.3/lib/isccfg/Makefile.in.rh665971 bind-9.7.3/lib/isccfg/Makefile.in +--- bind-9.7.3/lib/isccfg/Makefile.in.rh665971 2011-02-18 15:01:06.809042198 +0100 ++++ bind-9.7.3/lib/isccfg/Makefile.in 2011-02-18 15:01:19.549014121 +0100 +@@ -68,7 +68,7 @@ libisccfg.la: ${OBJS} + ${LIBTOOL_MODE_LINK} \ + ${CC} ${ALL_CFLAGS} ${LDFLAGS} -o libisccfg.la -rpath ${libdir} \ + -version-info ${LIBINTERFACE}:${LIBREVISION}:${LIBAGE} \ +- ${OBJS} ${LIBS} ${DNSLIBS} ${ISCCCLIBS} ${ISCLIBS} ++ ${OBJS} ${DNSLIBS} ${ISCCCLIBS} ${ISCLIBS} ${LIBS} + + timestamp: libisccfg.@A@ + touch timestamp diff --git a/bind97-rh674334.patch b/bind97-rh674334.patch new file mode 100644 index 0000000..cf7992f --- /dev/null +++ b/bind97-rh674334.patch @@ -0,0 +1,122 @@ +diff -up bind-9.7.3/bin/dig/dig.c.rh674334 bind-9.7.3/bin/dig/dig.c +--- bind-9.7.3/bin/dig/dig.c.rh674334 2010-05-13 02:42:26.000000000 +0200 ++++ bind-9.7.3/bin/dig/dig.c 2011-02-18 13:37:45.830518968 +0100 +@@ -44,8 +44,6 @@ + #include + #include + +-#include +- + #include + + #define ADD_STRING(b, s) { \ +@@ -1429,30 +1427,6 @@ preparse_args(int argc, char **argv) { + } + + static void +-getaddresses(dig_lookup_t *lookup, const char *host) { +- isc_result_t result; +- isc_sockaddr_t sockaddrs[DIG_MAX_ADDRESSES]; +- isc_netaddr_t netaddr; +- int count, i; +- dig_server_t *srv; +- char tmp[ISC_NETADDR_FORMATSIZE]; +- +- result = bind9_getaddresses(host, 0, sockaddrs, +- DIG_MAX_ADDRESSES, &count); +- if (result != ISC_R_SUCCESS) +- fatal("couldn't get address for '%s': %s", +- host, isc_result_totext(result)); +- +- for (i = 0; i < count; i++) { +- isc_netaddr_fromsockaddr(&netaddr, &sockaddrs[i]); +- isc_netaddr_format(&netaddr, tmp, sizeof(tmp)); +- srv = make_server(tmp, host); +- ISC_LIST_APPEND(lookup->my_server_list, srv, link); +- } +- addresscount = count; +-} +- +-static void + parse_args(isc_boolean_t is_batchfile, isc_boolean_t config_only, + int argc, char **argv) { + isc_result_t result; +@@ -1546,7 +1520,7 @@ parse_args(isc_boolean_t is_batchfile, i + if (strncmp(rv[0], "%", 1) == 0) + break; + if (strncmp(rv[0], "@", 1) == 0) { +- getaddresses(lookup, &rv[0][1]); ++ addresscount = getaddresses(lookup, &rv[0][1]); + } else if (rv[0][0] == '+') { + plus_option(&rv[0][1], is_batchfile, + lookup); +diff -up bind-9.7.3/bin/dig/dighost.c.rh674334 bind-9.7.3/bin/dig/dighost.c +--- bind-9.7.3/bin/dig/dighost.c.rh674334 2011-02-18 13:37:45.820518990 +0100 ++++ bind-9.7.3/bin/dig/dighost.c 2011-02-18 13:37:45.830518968 +0100 +@@ -1808,8 +1808,7 @@ followup_lookup(dns_message_t *msg, dig_ + dns_rdata_freestruct(&ns); + + /* Initialize lookup if we've not yet */ +- debug("found NS %d %s", numLookups, namestr); +- numLookups++; ++ debug("found NS %s", namestr); + if (!success) { + success = ISC_TRUE; + lookup_counter++; +@@ -1831,9 +1830,8 @@ followup_lookup(dns_message_t *msg, dig_ + domain = dns_fixedname_name(&lookup->fdomain); + dns_name_copy(name, domain, NULL); + } +- srv = make_server(namestr, namestr); +- debug("adding server %s", srv->servername); +- ISC_LIST_APPEND(lookup->my_server_list, srv, link); ++ debug("adding server %s", namestr); ++ numLookups += getaddresses(lookup, namestr); + dns_rdata_reset(&rdata); + } + } +@@ -3608,6 +3606,31 @@ get_address(char *host, in_port_t port, + return (ISC_R_SUCCESS); + } + ++int ++getaddresses(dig_lookup_t *lookup, const char *host) { ++ isc_result_t result; ++ isc_sockaddr_t sockaddrs[DIG_MAX_ADDRESSES]; ++ isc_netaddr_t netaddr; ++ int count, i; ++ dig_server_t *srv; ++ char tmp[ISC_NETADDR_FORMATSIZE]; ++ ++ result = bind9_getaddresses(host, 0, sockaddrs, ++ DIG_MAX_ADDRESSES, &count); ++ if (result != ISC_R_SUCCESS) ++ fatal("couldn't get address for '%s': %s", ++ host, isc_result_totext(result)); ++ ++ for (i = 0; i < count; i++) { ++ isc_netaddr_fromsockaddr(&netaddr, &sockaddrs[i]); ++ isc_netaddr_format(&netaddr, tmp, sizeof(tmp)); ++ srv = make_server(tmp, host); ++ ISC_LIST_APPEND(lookup->my_server_list, srv, link); ++ } ++ ++ return count; ++} ++ + /*% + * Initiate either a TCP or UDP lookup + */ +diff -up bind-9.7.3/bin/dig/include/dig/dig.h.rh674334 bind-9.7.3/bin/dig/include/dig/dig.h +--- bind-9.7.3/bin/dig/include/dig/dig.h.rh674334 2011-02-18 13:37:45.820518990 +0100 ++++ bind-9.7.3/bin/dig/include/dig/dig.h 2011-02-18 13:37:45.830518968 +0100 +@@ -289,6 +289,9 @@ extern int idnoptions; + isc_result_t + get_address(char *host, in_port_t port, isc_sockaddr_t *sockaddr); + ++int ++getaddresses(dig_lookup_t *lookup, const char *host); ++ + isc_result_t + get_reverse(char *reverse, size_t len, char *value, isc_boolean_t ip6_int, + isc_boolean_t strict); diff --git a/sources b/sources index 6fd59e6..97a1c28 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ 76857526420dc8e153ad688aeb5a2c4b config-8.tar.bz2 -c377ab1425e563ff4d930293fa5d5d5e bind-9.7.3rc1.tar.gz +207477c4cf95f2db5be0ded8a22669e0 bind-9.7.3.tar.gz