- fix binary frame type bug.

This commit is contained in:
liris
2011-01-05 18:11:30 +09:00
parent edeb45dd01
commit cc63079395
2 changed files with 5 additions and 3 deletions

View File

@@ -165,11 +165,11 @@ class WebSocketTest(unittest.TestCase):
data = sock.recv() data = sock.recv()
self.assertEquals(data, "こんにちは") self.assertEquals(data, "こんにちは")
s.set_data("\x01\x05Hello") s.set_data("\x81\x05Hello")
data = sock.recv() data = sock.recv()
self.assertEquals(data, "Hello") self.assertEquals(data, "Hello")
s.set_data("\x01\x81\x7f" + ("a"*255)) s.set_data("\x81\x81\x7f" + ("a"*255))
data = sock.recv() data = sock.recv()
self.assertEquals(len(data), 255) self.assertEquals(len(data), 255)
self.assertEquals(data, "a" * 255) self.assertEquals(data, "a" * 255)

View File

@@ -303,11 +303,13 @@ class WebSocket(object):
else: else:
bytes.append(b) bytes.append(b)
return "".join(bytes) return "".join(bytes)
elif 0 < frame_type < 0x80: elif frame_type > 0x80:
# which frame type is valid? # which frame type is valid?
length = self._read_length() length = self._read_length()
bytes = self._recv_strict(length) bytes = self._recv_strict(length)
return bytes return bytes
else:
raise WebSocketException("Invalid frame type")
def _read_length(self): def _read_length(self):
length = 0 length = 0