From 9ec96d7a984864b7a68982348a6844359e891462 Mon Sep 17 00:00:00 2001 From: Jakub Hrozek Date: Jun 03 2010 12:19:49 +0000 Subject: Fix domain search order --- diff --git a/c-ares.spec b/c-ares.spec index 53e556b..d645c74 100644 --- a/c-ares.spec +++ b/c-ares.spec @@ -1,13 +1,14 @@ Summary: A library that performs asynchronous DNS operations Name: c-ares Version: 1.6.0 -Release: 3%{?dist} +Release: 4%{?dist} License: MIT Group: System Environment/Libraries URL: http://c-ares.haxx.se/ Source0: http://c-ares.haxx.se/c-ares-%{version}.tar.gz Source1: LICENSE Patch0: %{name}-1.6.0-optflags.patch +Patch1: domain-search-order-1.6.0.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %description @@ -28,6 +29,7 @@ compile applications or shared objects that use c-ares. %prep %setup -q %patch0 -p1 -b .optflags +%patch1 -p1 -b .domain cp %{SOURCE1} . f=CHANGES ; iconv -f iso-8859-1 -t utf-8 $f -o $f.utf8 ; mv $f.utf8 $f @@ -62,6 +64,9 @@ rm -rf $RPM_BUILD_ROOT %{_mandir}/man3/ares_* %changelog +* Thu Jun 2 2010 Jakub Hrozek - 1.6.0-4 +- Backport the fix the order of search domains from 1.7 branch + * Sat Jul 25 2009 Ville Skyttä - 1.6.0-3 - Patch to make upstream build system honor our CFLAGS and friends. - Don't bother building throwaway static libs. diff --git a/domain-search-order-1.6.0.patch b/domain-search-order-1.6.0.patch new file mode 100644 index 0000000..0273210 --- /dev/null +++ b/domain-search-order-1.6.0.patch @@ -0,0 +1,48 @@ +diff -up c-ares-1.6.0/ares_init.3.domain c-ares-1.6.0/ares_init.3 +--- c-ares-1.6.0/ares_init.3.domain 2010-06-03 12:53:48.000000000 +0200 ++++ c-ares-1.6.0/ares_init.3 2010-06-03 12:54:07.000000000 +0200 +@@ -184,6 +184,27 @@ A configuration file could not be read. + .TP 14 + .B ARES_ENOMEM + The process's available memory was exhausted. ++.SH NOTES ++When initializing from ++.B /etc/resolv.conf, ++.BR ares_init (3) ++reads the ++.I domain ++and ++.I search ++directives to allow lookups of short names relative to the domains ++specified. The ++.I domain ++and ++.I search ++directives override one another. If more that one instance of either ++.I domain ++or ++.I search ++directives is specified, the last occurence wins. For more information, ++please see the ++.BR resolv.conf (5) ++manual page. + .SH SEE ALSO + .BR ares_destroy(3), + .BR ares_dup(3) +diff -up c-ares-1.6.0/ares_init.c.domain c-ares-1.6.0/ares_init.c +--- c-ares-1.6.0/ares_init.c.domain 2010-06-03 12:53:42.000000000 +0200 ++++ c-ares-1.6.0/ares_init.c 2010-06-03 12:54:29.000000000 +0200 +@@ -815,11 +815,11 @@ DhcpNameServer + if (fp) { + while ((status = ares__read_line(fp, &line, &linesize)) == ARES_SUCCESS) + { +- if ((p = try_config(line, "domain")) && channel->ndomains == -1) ++ if ((p = try_config(line, "domain"))) + status = config_domain(channel, p); + else if ((p = try_config(line, "lookup")) && !channel->lookups) + status = config_lookup(channel, p, "bind", "file"); +- else if ((p = try_config(line, "search")) && channel->ndomains == -1) ++ else if ((p = try_config(line, "search"))) + status = set_search(channel, p); + else if ((p = try_config(line, "nameserver")) && channel->nservers == -1) + status = config_nameserver(&servers, &nservers, p);