diff options
author | Tim Hockin <thockin@google.com> | 2016-03-09 21:48:32 +0100 |
---|---|---|
committer | Waldemar Brodkorb <wbx@uclibc-ng.org> | 2016-03-10 21:50:25 +0100 |
commit | 2ac8348609b63d6f3a87cb27ce17deff889c6a73 (patch) | |
tree | 36fa9514b8baf5b2362c81a122eb624766b4b0c8 /libc/inet | |
parent | 3c67c044f93b452aa483eb1246195ebb4443cb44 (diff) |
DNS: don't count search-path miss as a retry
Currently a miss on a search-path entry is counted as a retry. This means that
users with more than (num_nameservers * retries) entries in their search path
list fail before trying all search paths. Concretely, a single nameserver with
4 search paths will never try the 4th search because the default retry is 3.
The code doesn't currently retry a given nameserver in case of an error, so
retries is sort of meaningless (though there are some comments indicating it
might come). This change only treats total failure of a nameserver (try next
server) as a retry.
Signed-off-by: Tim Hockin <thockin@google.com>
Diffstat (limited to 'libc/inet')
-rw-r--r-- | libc/inet/resolv.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/libc/inet/resolv.c b/libc/inet/resolv.c index 4b33896d3..e676f5371 100644 --- a/libc/inet/resolv.c +++ b/libc/inet/resolv.c @@ -1320,7 +1320,6 @@ int __dns_lookup(const char *name, local_ns_num = last_ns_num; retries_left = __nameservers * __resolv_attempts; } - retries_left--; if (local_ns_num >= __nameservers) local_ns_num = 0; local_id++; @@ -1572,6 +1571,7 @@ int __dns_lookup(const char *name, try_next_server: /* Try next nameserver */ + retries_left--; local_ns_num++; variant = -1; } while (retries_left > 0); |