aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--netlib/websockets/protocol.py4
-rw-r--r--pathod/language/websockets.py5
-rw-r--r--pathod/protocols/websockets.py2
3 files changed, 6 insertions, 5 deletions
diff --git a/netlib/websockets/protocol.py b/netlib/websockets/protocol.py
index c1b7be2c..af0eef7d 100644
--- a/netlib/websockets/protocol.py
+++ b/netlib/websockets/protocol.py
@@ -20,7 +20,7 @@ import os
import six
-from netlib import http
+from netlib import http, strutils
websockets_magic = b'258EAFA5-E914-47DA-95CA-C5AB0DC85B11'
VERSION = "13"
@@ -109,4 +109,4 @@ class WebsocketsProtocol(object):
@classmethod
def create_server_nonce(self, client_nonce):
- return base64.b64encode(hashlib.sha1(client_nonce + websockets_magic).digest())
+ return base64.b64encode(hashlib.sha1(strutils.always_bytes(client_nonce) + websockets_magic).digest())
diff --git a/pathod/language/websockets.py b/pathod/language/websockets.py
index 9b752b7e..417944af 100644
--- a/pathod/language/websockets.py
+++ b/pathod/language/websockets.py
@@ -1,10 +1,11 @@
import random
import string
import netlib.websockets
+from netlib import strutils
import pyparsing as pp
from . import base, generators, actions, message
-NESTED_LEADER = "pathod!"
+NESTED_LEADER = b"pathod!"
class WF(base.CaselessLiteral):
@@ -193,7 +194,7 @@ class WebsocketFrame(message.Message):
bodygen = self.rawbody.value.get_generator(settings)
length = len(self.rawbody.value.get_generator(settings))
elif self.nested_frame:
- bodygen = NESTED_LEADER + self.nested_frame.parsed.spec()
+ bodygen = NESTED_LEADER + strutils.always_bytes(self.nested_frame.parsed.spec())
length = len(bodygen)
else:
bodygen = None
diff --git a/pathod/protocols/websockets.py b/pathod/protocols/websockets.py
index 2b60e618..a34e75e8 100644
--- a/pathod/protocols/websockets.py
+++ b/pathod/protocols/websockets.py
@@ -37,7 +37,7 @@ class WebsocketsProtocol:
if frm.payload.startswith(ld):
nest = frm.payload[len(ld):]
try:
- wf_gen = language.parse_websocket_frame(nest)
+ wf_gen = language.parse_websocket_frame(nest.decode())
except language.exceptions.ParseException as v:
logger.write(
"Parse error in reflected frame specifcation:"