| 57 | class RPCHLocalTest(unittest.TestCase): |
| 58 | |
| 59 | def test_2(self): |
| 60 | # CONN/A1 |
| 61 | resp = b'\x05\x00\x14\x03\x10\x00\x00\x00\x4c\x00\x00\x00\x00\x00' + \ |
| 62 | b'\x00\x00\x00\x00\x04\x00\x06\x00\x00\x00\x01\x00\x00\x00' + \ |
| 63 | b'\x03\x00\x00\x00\xb0\xf6\xaf\x3d\x77\x62\x98\x07\x9b\x21' + \ |
| 64 | b'\x54\x6e\xec\xf4\x22\x53\x03\x00\x00\x00\x3a\x24\x7a\x37' + \ |
| 65 | b'\x6d\xc1\xed\x2c\x68\x5d\x34\x35\x13\x46\x43\x25\x00\x00' + \ |
| 66 | b'\x00\x00\x00\x00\x04\x00' |
| 67 | |
| 68 | packet = rpch.RTSHeader(resp) |
| 69 | packet.dump() |
| 70 | |
| 71 | pduData = packet['pduData'] |
| 72 | numberOfCommands = packet['NumberOfCommands'] |
| 73 | |
| 74 | self.assertEqual(numberOfCommands, 4) |
| 75 | self.assertEqual(packet['Flags'], rpch.RTS_FLAG_NONE) |
| 76 | self.assertEqual(packet['frag_len'], 76) |
| 77 | self.assertEqual(len(pduData), 56) |
| 78 | |
| 79 | server_cmds = [] |
| 80 | while numberOfCommands > 0: |
| 81 | numberOfCommands -= 1 |
| 82 | |
| 83 | cmd_type = unpack('<L', pduData[:4])[0] |
| 84 | cmd = rpch.COMMANDS[cmd_type](pduData) |
| 85 | server_cmds.append(cmd) |
| 86 | pduData = pduData[len(cmd):] |
| 87 | |
| 88 | for cmd in server_cmds: |
| 89 | cmd.dump() |
| 90 | |
| 91 | self.assertEqual(server_cmds[0].getData(), rpch.Version().getData()) |
| 92 | receiveWindowSize = rpch.ReceiveWindowSize() |
| 93 | receiveWindowSize['ReceiveWindowSize'] = 262144 |
| 94 | |
| 95 | self.assertEqual(server_cmds[3].getData(), receiveWindowSize.getData()) |
| 96 | |
| 97 | cookie = rpch.Cookie() |
| 98 | cookie['Cookie'] = b'\xb0\xf6\xaf=wb\x98\x07\x9b!Tn\xec\xf4"S' |
| 99 | |
| 100 | self.assertEqual(server_cmds[1].getData(), cookie.getData()) |
| 101 | |
| 102 | def test_3(self): |
| 103 | # CONN/A3 |