r684 - trunk/varnish-cache/bin/varnishncsa

andersb at projects.linpro.no andersb at projects.linpro.no
Sat Aug 5 23:11:50 CEST 2006


Author: andersb
Date: 2006-08-05 23:11:50 +0200 (Sat, 05 Aug 2006)
New Revision: 684

Modified:
   trunk/varnish-cache/bin/varnishncsa/varnishncsa.c
Log:
Added user, loginname, statuscode (200, 304 etc.), byte and referer to make a logline compliant. User and loginname is hardcoded. Referer and User-agen is unclean. Timecode is not working. This version leaks memory bigtime, and is not ready for alpha yet.

Modified: trunk/varnish-cache/bin/varnishncsa/varnishncsa.c
===================================================================
--- trunk/varnish-cache/bin/varnishncsa/varnishncsa.c	2006-08-05 20:52:05 UTC (rev 683)
+++ trunk/varnish-cache/bin/varnishncsa/varnishncsa.c	2006-08-05 21:11:50 UTC (rev 684)
@@ -40,9 +40,9 @@
 	//   unsigned char *df_u; // Datafield for %u
 	struct tm *logline_time; // Datafield for %t
 	unsigned char *df_r; // Datafield for %r
-	//   unsigned char *df_s; // Datafield for %s
-	//   unsigned char *df_b; // Datafield for %b
-	//   unsigned char *df_R; // Datafield for %{Referer}i
+	unsigned char *df_s; // Datafield for %s
+	unsigned char *df_b; // Datafield for %b
+	unsigned char *df_R; // Datafield for %{Referer}i
 	unsigned char *df_U; // Datafield for %{User-agent}i
 };
 
@@ -173,6 +173,14 @@
 		if (p[1] >= 11 && !strncasecmp((void *)&p[4], "user-agent:",11)){
 			ll[u].df_U = strdup(p + 4);
 		}
+		if (p[1] >= 8 && !strncasecmp((void *)&p[4], "referer:",8)){
+			ll[u].df_R = strdup(p + 4);
+		}
+		else if (ll[u].df_R == NULL){
+			ll[u].df_R = strdup(p + 4);
+			ll[u].df_R[0] = '-';
+			ll[u].df_R[1] = '\0';
+		}
 
 		break;
 
@@ -184,10 +192,10 @@
 		tmpPtrb =  strdup(p + 4);
 
 		for ( tmpPtra = strtok(tmpPtrb," "); tmpPtra != NULL; tmpPtra = strtok(NULL, " ")){
-			if (i = 1){
+			//if (i = 1){
 				tmpPtrc = tmpPtra;
-			}
-			printf("ReqServTime number %d: %s\n", i, tmpPtra);
+			//}
+			//printf("ReqServTime number %d: %s\n", i, tmpPtra);
 			
 			i++;
 		}
@@ -210,6 +218,22 @@
 
 		break;
 
+	case SLT_TxStatus:
+
+		ll[u].df_s = strdup(p + 4);
+
+		break;
+	
+	case SLT_Length:
+
+		ll[u].df_b = strdup(p + 4);
+		if (!atoi(ll[u].df_b)){
+			ll[u].df_b[0] = '-';	
+			ll[u].df_b[1] = '\0';
+		}
+
+		break;
+
 	case SLT_SessionClose:
 
 		if (p[1] >= 7 && !strncasecmp((void *)&p[4], "timeout",7)){
@@ -217,11 +241,13 @@
 		}
 		else{
 			
-			printf("%s %s", ll[u].df_h, temp_time);
+			printf("%s - - %s", ll[u].df_h, temp_time);
 			sbuf_finish(ob[u]);
 			printf("\"%s\"", sbuf_data(ob[u]));
-			printf(" \"%s\"\n", ll[u].df_U);
+			printf(" %s %s \"%s\" \"%s\"\n", ll[u].df_s, ll[u].df_b, ll[u].df_R, ll[u].df_U);
 			sbuf_clear(ob[u]);
+			//free(ll[u].df_R);
+			//free(ll[u].df_U);
 			
 		}
 		
@@ -243,11 +269,13 @@
 
 		}
 		
-		printf("%s %s", ll[u].df_h, temp_time);
+		printf("%s - - %s", ll[u].df_h, temp_time);
 		sbuf_finish(ob[u]);
 		printf("\"%s\"", sbuf_data(ob[u]));
-		printf(" \"%s\"\n", ll[u].df_U);
+		printf(" %s %s \"%s\" \"%s\"\n", ll[u].df_s, ll[u].df_b, ll[u].df_R, ll[u].df_U);
 		sbuf_clear(ob[u]);
+		//free(ll[u].df_R);
+		//free(ll[u].df_U);
 		
 		break;
 




More information about the varnish-commit mailing list