git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 1/3] git-daemon: single-line logs

From
JEJan Engelhardt <jengelh@medozas.de>
Date
Jan 14, 2009, 10:48 UTC
Message-ID
<alpine.LSU.2.00.0901141147120.16109@fbirervta.pbzchgretzou.qr>
parent v1.6.1
git-daemon: single-line logs

Having just a single line per connection attempt, much like Apache httpd2 access logs, makes log parsing much easier, especially when just glancing over it non-automated.

Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
---
 daemon.c |   15 ++++++---------
 1 file changed, 6 insertions(+), 9 deletions(-)
Index: git-1.6.1/daemon.c
===================================================================
--- git-1.6.1.orig/daemon.c
+++ git-1.6.1/daemon.c
@@ -295,12 +295,13 @@ static int git_daemon_config(const char
 	return 0;
 }
 
-static int run_service(char *dir, struct daemon_service *service)
+static int run_service(char *dir, struct daemon_service *service,
+    const char *origin, const char *vhost)
 {
 	const char *path;
 	int enabled = service->enabled;
 
-	loginfo("Request %s for '%s'", service->name, dir);
+	loginfo("%s->%s %s \"%s\"\n", origin, vhost, service->name, dir);
 
 	if (!enabled && !service->overridable) {
 		logerror("'%s': service not enabled.", service->name);
@@ -507,10 +508,10 @@ static void parse_extra_args(char *extra
 static int execute(struct sockaddr *addr)
 {
 	static char line[1000];
+	char addrbuf[256] = "";
 	int pktlen, len, i;
 
 	if (addr) {
-		char addrbuf[256] = "";
 		int port = -1;
 
 		if (addr->sa_family == AF_INET) {
@@ -529,7 +530,6 @@ static int execute(struct sockaddr *addr
 			port = ntohs(sin6_addr->sin6_port);
 #endif
 		}
-		loginfo("Connection from %s:%d", addrbuf, port);
 		setenv("REMOTE_ADDR", addrbuf, 1);
 	}
 	else {
@@ -541,10 +541,6 @@ static int execute(struct sockaddr *addr
 	alarm(0);
 
 	len = strlen(line);
-	if (pktlen != len)
-		loginfo("Extended attributes (%d bytes) exist <%.*s>",
-			(int) pktlen - len,
-			(int) pktlen - len, line + len + 1);
 	if (len && line[len-1] == '\n') {
 		line[--len] = 0;
 		pktlen--;
@@ -569,7 +565,8 @@ static int execute(struct sockaddr *addr
 			 * Note: The directory here is probably context sensitive,
 			 * and might depend on the actual service being performed.
 			 */
-			return run_service(line + namelen + 5, s);
+			return run_service(line + namelen + 5, s,
+			       addrbuf, hostname);
 		}
 	}
 
Next: Jan Engelhardt
Message 1 of 13 in “git-daemon: single-line logs”
  1. 1/3 git-daemon: single-line logsJan Engelhardt, Jan 14, 2009
  2. 2/3 git-daemon: use getnameinfo to resolve hostnameJan Engelhardt, Jan 14, 2009
  3. 3/3 git-daemon: vhost supportJan Engelhardt, Jan 14, 2009
  4. Junio C HamanoJan 14, 2009
  5. Jan EngelhardtJan 14, 2009
  6. Junio C HamanoJan 14, 2009
  7. Jan EngelhardtJan 14, 2009
  8. Jeff KingJan 14, 2009
  9. Adeodato SimóJan 14, 2009
  10. Jay SoffianJan 14, 2009
  11. Jan EngelhardtJan 14, 2009
  12. Junio C HamanoJan 14, 2009
  13. Jan EngelhardtJan 14, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.