Thread (43 messages) flat view 43 messages, 5 authors, 2016-06-15

Re: [PATCH v3 11/14] daemon: report connection from root-process

From: Erik Faye-Lund <hidden>
Date: 2016-06-15 22:49:45
Subsystem: the rest · Maintainer: Linus Torvalds

On Sun, Oct 10, 2010 at 9:31 PM, Erik Faye-Lund [off-list ref] wrote:
On Sun, Oct 10, 2010 at 8:58 PM, Johannes Sixt [off-list ref] wrote:
quoted
On Sonntag, 10. Oktober 2010, Erik Faye-Lund wrote:
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help