diff --git a/libpathod/pathoc.py b/libpathod/pathoc.py index 3e5204c21..8fe7b7f66 100644 --- a/libpathod/pathoc.py +++ b/libpathod/pathoc.py @@ -1,18 +1,18 @@ import sys, os from netlib import tcp, http -import rparse +import rparse, utils class PathocError(Exception): pass def print_short(fp, httpversion, code, msg, headers, content): - print >> fp, "<< %s %s: %s bytes"%(code, msg, len(content)) + print >> fp, "<< %s %s: %s bytes"%(code, utils.xrepr(msg), len(content)) def print_full(fp, httpversion, code, msg, headers, content): - print >> fp, "<< HTTP%s/%s %s %s"%(httpversion[0], httpversion[1], code, msg) - print >> fp, headers - print >> fp, content + print >> fp, "<< HTTP%s/%s %s %s"%(httpversion[0], httpversion[1], code, utils.xrepr(msg)) + print >> fp, utils.escape_unprintables(str(headers)) + print >> fp, utils.escape_unprintables(content) class Pathoc(tcp.TCPClient): diff --git a/libpathod/utils.py b/libpathod/utils.py index 40f37cab2..1ee50b830 100644 --- a/libpathod/utils.py +++ b/libpathod/utils.py @@ -41,6 +41,10 @@ def parse_anchor_spec(s): return tuple(s.split("=", 1)) +def xrepr(s): + return repr(s)[1:-1] + + def escape_unprintables(s): s = s.replace("\r\n", "PATHOD_MARKER_RN") s = s.replace("\n", "PATHOD_MARKER_N")