[4.0] 862c6a1 Don't output trailing '\0' of SLT_Debug records

Martin Blix Grydeland martin at varnish-software.com
Thu Mar 13 10:24:23 CET 2014


commit 862c6a174ac335a5aba048d9e4af733ab9c64f2f
Author: Martin Blix Grydeland <martin at varnish-software.com>
Date:   Wed Feb 5 15:40:22 2014 +0100

    Don't output trailing '\0' of SLT_Debug records
    
    SLT_Debug is special as it is both used as a binary log record and as
    a text record. Add a special case for it and don't escape-output the
    trailing zero.

diff --git a/lib/libvarnishapi/vsl.c b/lib/libvarnishapi/vsl.c
index 363085a..6e0f20a 100644
--- a/lib/libvarnishapi/vsl.c
+++ b/lib/libvarnishapi/vsl.c
@@ -255,6 +255,8 @@ VSL_Print(const struct VSL_data *vsl, const struct VSL_cursor *c, void *fo)
 	if (VSL_tagflags[tag] & SLT_F_BINARY) {
 		VSL_PRINT(fo, "%10u %-14s %c \"", vxid, VSL_tags[tag], type);
 		while (len-- > 0) {
+			if (len == 0 && tag == SLT_Debug && *data == '\0')
+				break;
 			if (*data >= ' ' && *data <= '~')
 				VSL_PRINT(fo, "%c", *data);
 			else
@@ -288,6 +290,8 @@ VSL_PrintTerse(const struct VSL_data *vsl, const struct VSL_cursor *c, void *fo)
 	if (VSL_tagflags[tag] & SLT_F_BINARY) {
 		VSL_PRINT(fo, "%-14s \"", VSL_tags[tag]);
 		while (len-- > 0) {
+			if (len == 0 && tag == SLT_Debug && *data == '\0')
+				break;
 			if (*data >= ' ' && *data <= '~')
 				VSL_PRINT(fo, "%c", *data);
 			else



More information about the varnish-commit mailing list