changeset 16746:bbe4a469e276

lib-http: Improved display of invalid characters in parse error messages.
author Stephan Bosch <stephan@rename-it.nl>
date Sun, 15 Sep 2013 03:46:25 +0300
parents 572b9a9031e7
children 29ceb7126b91
files src/lib-http/http-request-parser.c src/lib-http/http-response-parser.c
diffstat 2 files changed, 12 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-http/http-request-parser.c	Sun Sep 15 03:46:12 2013 +0300
+++ b/src/lib-http/http-request-parser.c	Sun Sep 15 03:46:25 2013 +0300
@@ -96,8 +96,12 @@
 static inline const char *_chr_sanitize(unsigned char c)
 {
 	if (c >= 0x20 && c < 0x7F)
-		return t_strdup_printf("'%c'", c);
-	return t_strdup_printf("0x%02x", c);
+		return t_strdup_printf("`%c'", c);
+	if (c == 0x0a)
+		return "<LF>";
+	if (c == 0x0d)
+		return "<CR>";
+	return t_strdup_printf("<0x%02x>", c);
 }
 
 static int http_request_parse(struct http_request_parser *parser,
--- a/src/lib-http/http-response-parser.c	Sun Sep 15 03:46:12 2013 +0300
+++ b/src/lib-http/http-response-parser.c	Sun Sep 15 03:46:25 2013 +0300
@@ -94,8 +94,12 @@
 static inline const char *_chr_sanitize(unsigned char c)
 {
 	if (c >= 0x20 && c < 0x7F)
-		return t_strdup_printf("'%c'", c);
-	return t_strdup_printf("0x%02x", c);
+		return t_strdup_printf("`%c'", c);
+	if (c == 0x0a)
+		return "<LF>";
+	if (c == 0x0d)
+		return "<CR>";
+	return t_strdup_printf("<0x%02x>", c);
 }
 
 static int http_response_parse(struct http_response_parser *parser,