diff --git a/0001-ares_init-Last-not-first-instance-of-domain-or-searc.patch b/0001-ares_init-Last-not-first-instance-of-domain-or-searc.patch new file mode 100644 index 0000000..6a36f94 --- /dev/null +++ b/0001-ares_init-Last-not-first-instance-of-domain-or-searc.patch @@ -0,0 +1,67 @@ +From 125b1a8619eb27556e093fd9c9adf451e896f012 Mon Sep 17 00:00:00 2001 +From: Jakub Hrozek +Date: Mon, 31 May 2010 16:32:54 +0200 +Subject: [PATCH] ares_init: Last, not first instance of domain or search should win + +diff --git a/ares_init.3 b/ares_init.3 +index 00ff36d..fb25306 100644 +--- a/ares_init.3 ++++ b/ares_init.3 +@@ -109,7 +109,7 @@ or the domain derived from the kernel hostname variable. + .B ARES_OPT_LOOKUPS + .B char *\fIlookups\fP; + .br +-The lookups to perform for host queries. ++The lookups to perform for host queries. + .I lookups + should be set to a string of the characters "b" or "f", where "b" + indicates a DNS lookup and "f" indicates a lookup in the hosts file. +@@ -189,6 +189,27 @@ The process's available memory was exhausted. + .TP 14 + .B ARES_ENOTINITIALIZED + c-ares library initialization not yet performed. ++.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 --git a/ares_init.c b/ares_init.c +index 1f561aa..9d1e447 100644 +--- a/ares_init.c ++++ b/ares_init.c +@@ -839,11 +839,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); +-- +1.6.6.1 +