On Sun, Oct 10, 2010 at 9:31 PM, Erik Faye-Lund <kusmabite@xxxxxxxxx> wrote: > On Sun, Oct 10, 2010 at 8:58 PM, Johannes Sixt <j6t@xxxxxxxx> wrote: >> On Sonntag, 10. Oktober 2010, Erik Faye-Lund wrote: >>> Report incoming connections from the process that >>> accept() the connection instead of the handling >>> process. >>> >>> This enables "Connection from"-reporting on >>> Windows, where getpeername(0, ...) consistently >>> fails. >> >> Is this from the process that you invoke with --serve? then this failure could >> be due to Winsockets not being initilized. Did you check that? >> > > I've tried that, and unfortunately it lack of socket initialization > does not seem to be the reason :( > But looking at it a bit more, I can do the following code-reduction on top, changing this to a +10 lines to a -2 lines patch ;) diff --git a/daemon.c b/daemon.c index 56a9bed..e9a4839 100644 --- a/daemon.c +++ b/daemon.c @@ -518,7 +518,7 @@ static void parse_host_arg(char *extra_args, int buflen) } -static int execute(struct sockaddr *addr) +static int execute() { static char line[1000]; int pktlen, len, i; @@ -1179,22 +1179,10 @@ int main(int argc, char **argv) base_path); if (serve_mode) { - struct sockaddr_storage ss; - struct sockaddr *peer = (struct sockaddr *)&ss; - socklen_t slen = sizeof(ss); - if (inetd_mode && !freopen("/dev/null", "w", stderr)) die_errno("failed to redirect stderr to /dev/null"); - if (!getpeername(0, peer, &slen)) { - int port = -1; - char *addrstr = get_addrstr(&port, peer); - setenv("REMOTE_ADDR", addrstr, 1); - loginfo("[%"PRIuMAX"] Connection from %s:%d", - (uintmax_t)getpid(), addrstr, port); - } - - return execute(peer); + return execute(); } #ifdef _POSIX_VERSION -- 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