Make recording Python 3 compatible

Python 3's bytes objects require a bit more care to get in to the
output format we need.
This commit is contained in:
Pierre Ossman 2018-04-05 16:07:09 +02:00
parent 3646575c99
commit 38b77714a9
1 changed files with 6 additions and 2 deletions

View File

@ -142,7 +142,9 @@ class WebSockifyRequestHandler(WebSocketRequestHandler, SimpleHTTPRequestHandler
if bufs:
for buf in bufs:
if self.rec:
self.rec.write("%s,\n" % repr("{%s{" % tdelta + buf))
# Python 3 compatible conversion
bufstr = buf.decode('latin1').encode('unicode_escape').decode('ascii').replace("'", "\\'")
self.rec.write("'{{{0}{{{1}',\n".format(tdelta, bufstr))
self.send_parts.append(buf)
# Flush any previously queued data
@ -189,7 +191,9 @@ class WebSockifyRequestHandler(WebSocketRequestHandler, SimpleHTTPRequestHandler
self.print_traffic("}")
if self.rec:
self.rec.write("%s,\n" % repr("}%s}" % tdelta + buf))
# Python 3 compatible conversion
bufstr = buf.decode('latin1').encode('unicode_escape').decode('ascii').replace("'", "\\'")
self.rec.write("'}}{0}}}{1}',\n".format(tdelta, bufstr))
bufs.append(buf)