r365 - trunk/varnish-cache/bin/varnishlog

phk at projects.linpro.no phk at projects.linpro.no
Fri Jul 7 08:27:32 CEST 2006


Author: phk
Date: 2006-07-07 08:27:32 +0200 (Fri, 07 Jul 2006)
New Revision: 365

Modified:
   trunk/varnish-cache/bin/varnishlog/varnishlog.c
Log:
Strvis(3) debug data.


Modified: trunk/varnish-cache/bin/varnishlog/varnishlog.c
===================================================================
--- trunk/varnish-cache/bin/varnishlog/varnishlog.c	2006-07-06 22:33:07 UTC (rev 364)
+++ trunk/varnish-cache/bin/varnishlog/varnishlog.c	2006-07-07 06:27:32 UTC (rev 365)
@@ -11,6 +11,7 @@
 #include <unistd.h>
 #include <assert.h>
 #include <sbuf.h>
+#include <vis.h>
 
 #include "shmlog.h"
 #include "varnishapi.h"
@@ -32,6 +33,18 @@
 
 static const char *tagnames[256];
 
+static char *
+vis_it(unsigned char *p)
+{
+	static char visbuf[255*4 + 3 + 1];
+
+	strcpy(visbuf, " [");
+	strvisx(visbuf + 2, p + 4, p[1],
+	    VIS_OCTAL | VIS_TAB | VIS_NL);
+	strcat(visbuf, "]");
+	return (visbuf);
+}
+
 /* Ordering-----------------------------------------------------------*/
 
 static struct sbuf	*ob[65536];
@@ -83,6 +96,13 @@
 			sbuf_cat(ob[u], ">\n");
 		}
 		break;
+	case SLT_Debug:
+		sbuf_printf(ob[u], "%02x %3d %4d %-12s",
+		    p[0], p[1], u, tagnames[p[0]]);
+		if (p[1] > 0)
+			sbuf_cat(ob[u], vis_it(p));
+		sbuf_cat(ob[u], "\n");
+		break;
 	default:
 		sbuf_printf(ob[u], "%02x %3d %4d %-12s",
 		    p[0], p[1], u, tagnames[p[0]]);
@@ -227,11 +247,20 @@
 			continue;
 		}
 		u = (p[2] << 8) | p[3];
-		printf("%02x %3d %4d %-12s <",
+		printf("%02x %3d %4d %-12s",
 		    p[0], p[1], u, tagnames[p[0]]);
-		if (p[1] > 0)
-			fwrite(p + 4, p[1], 1, stdout);
-		printf(">\n");
+		
+		if (p[1] > 0) {
+			if (p[0] != SLT_Debug) {
+				printf(" <");
+				fwrite(p + 4, p[1], 1, stdout);
+				printf(">");
+			} else {
+				fputs(vis_it(p), stdout);
+			}
+				
+		}
+		printf("\n");
 	}
 	if (o_flag)
 		clean_order();




More information about the varnish-commit mailing list