diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2015-05-01 10:31:20 +1200 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2015-05-01 10:31:20 +1200 |
commit | 08b2e2a6a98fd175e1b49d62dffde34e91c77b1c (patch) | |
tree | d3d2755ce7a2d6daca5087246e8f3b4d0c61e575 /netlib | |
parent | 7d9e38ffb10e92b5127f203c2d8a524da8698b00 (diff) | |
download | mitmproxy-08b2e2a6a98fd175e1b49d62dffde34e91c77b1c.tar.gz mitmproxy-08b2e2a6a98fd175e1b49d62dffde34e91c77b1c.tar.bz2 mitmproxy-08b2e2a6a98fd175e1b49d62dffde34e91c77b1c.zip |
websockets: more flexible masking interface.
Diffstat (limited to 'netlib')
-rw-r--r-- | netlib/websockets.py | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/netlib/websockets.py b/netlib/websockets.py index 84eb03ba..0ad0e294 100644 --- a/netlib/websockets.py +++ b/netlib/websockets.py @@ -48,13 +48,18 @@ class Masker: self.masks = [utils.bytes_to_int(byte) for byte in key] self.offset = 0 - def __call__(self, data): + def mask(self, offset, data): result = "" for c in data: - result += chr(ord(c) ^ self.masks[self.offset % 4]) - self.offset += 1 + result += chr(ord(c) ^ self.masks[offset % 4]) + offset += 1 return result + def __call__(self, data): + ret = self.mask(self.offset, data) + self.offset += len(ret) + return ret + def client_handshake_headers(key=None, version=VERSION): """ |