parent v1.6.1 git-daemon: use getnameinfo to resolve hostname This is much shorter than inet_ntop'ing, and also translated unresolvable addresses into a string. Signed-off-by: Jan Engelhardt <jengelh@xxxxxxxxxx> --- daemon.c | 26 +++++++------------------- 1 file changed, 7 insertions(+), 19 deletions(-) Index: git-1.6.1/daemon.c =================================================================== --- git-1.6.1.orig/daemon.c +++ git-1.6.1/daemon.c @@ -512,25 +512,13 @@ static int execute(struct sockaddr *addr int pktlen, len, i; if (addr) { - int port = -1; - - if (addr->sa_family == AF_INET) { - struct sockaddr_in *sin_addr = (void *) addr; - inet_ntop(addr->sa_family, &sin_addr->sin_addr, addrbuf, sizeof(addrbuf)); - port = ntohs(sin_addr->sin_port); -#ifndef NO_IPV6 - } else if (addr && addr->sa_family == AF_INET6) { - struct sockaddr_in6 *sin6_addr = (void *) addr; - - char *buf = addrbuf; - *buf++ = '['; *buf = '\0'; /* stpcpy() is cool */ - inet_ntop(AF_INET6, &sin6_addr->sin6_addr, buf, sizeof(addrbuf) - 1); - strcat(buf, "]"); - - port = ntohs(sin6_addr->sin6_port); -#endif - } - setenv("REMOTE_ADDR", addrbuf, 1); + i = getnameinfo(addr, (addr->sa_family == AF_INET6) ? + sizeof(struct sockaddr_in6) : sizeof(struct sockaddr_in), + addrbuf, sizeof(addrbuf), NULL, 0, 0); + if (i == 0) + setenv("REMOTE_ADDR", addrbuf, 1); + else + unsetenv("REMOTE_ADDR"); } else { unsetenv("REMOTE_ADDR"); -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html