On Wednesday 2009-01-14 13:25, Jeff King wrote: >On Wed, Jan 14, 2009 at 11:48:38AM +0100, Jan Engelhardt wrote: > >> This is much shorter than inet_ntop'ing, and also translated >> unresolvable addresses into a string. > >Er, doesn't this totally change the meaning of REMOTE_ADDR from an IP >address to a hostname? That seems bad because: >[...] > - people already have hooks that compare REMOTE_ADDR against an > address, so we are breaking their hooks >[...] >So at the very least, you should be adding REMOTE_HOST in _addition_ to >REMOTE_ADDR, not instead of. Good catch. It's always good to have someone else look through it. Changed, and below is the proposition as a non-mergable diff. In case getnameinfo fails, the IP address from inet_ntop should be left in addrbuf, is not it? And yeah, it does not have a flag to disable DNS resolution, but it's a draft for now. ---8<--- git-daemon: resolve source host's DNS Try to resolve DNS addresses so that run_service() can print the name of the host from which the request originated. [addrbuf is passed to run_service as a result of patch 1/3] --- daemon.c | 4 ++++ 1 file changed, 4 insertions(+) Index: git-1.6.1/daemon.c =================================================================== --- git-1.6.1.orig/daemon.c +++ git-1.6.1/daemon.c @@ -530,6 +530,10 @@ static int execute(struct sockaddr *addr #endif } setenv("REMOTE_ADDR", addrbuf, 1); + getnameinfo(addr, (addr->sa_family == AF_INET6) ? + sizeof(struct sockaddr_in6) : + sizeof(struct sockaddr_in), + addrbuf, sizeof(addrbuf), NULL, 0, 0); } 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