68 lines
2.2 KiB
Diff
68 lines
2.2 KiB
Diff
From 125b1a8619eb27556e093fd9c9adf451e896f012 Mon Sep 17 00:00:00 2001
|
|
From: Jakub Hrozek <jhrozek@redhat.com>
|
|
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
|
|
|