Fix non-IPv6 host name lookups
Commit 5b083026 ("fix ipv6 name for lookup") causes a regression
in regular (non-IPv6) host name lookups: it trims the first host
name character even when it's not a "[". This patch fixes the issue.
---
modules/replicated.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
Index: autofs/modules/replicated.c
===================================================================
--- autofs.orig/modules/replicated.c
+++ autofs/modules/replicated.c
@@ -1125,15 +1125,17 @@ static int add_host_addrs(struct host **
}
len = strlen(name);
- if (name[0] == '[' && name[--len] == ']')
+ if (name[0] == '[' && name[--len] == ']') {
name[len] = '\0';
+ memmove(name, name + 1, len);
+ }
memset(&hints, 0, sizeof(hints));
hints.ai_flags = AI_NUMERICHOST;
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_DGRAM;
- ret = getaddrinfo(name + 1, NULL, &hints, &ni);
+ ret = getaddrinfo(name, NULL, &hints, &ni);
if (ret)
goto try_name;
@@ -1153,7 +1155,7 @@ try_name:
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_DGRAM;
- ret = getaddrinfo(name + 1, NULL, &hints, &ni);
+ ret = getaddrinfo(name, NULL, &hints, &ni);
if (ret) {
error(LOGOPT_ANY, "hostname lookup failed: %s",
gai_strerror(ret));
_______________________________________________
autofs mailing list
[email protected]
http://linux.kernel.org/mailman/listinfo/autofs