| 259 | # TODO: Check ClientAddress. Why is it in the padding?! |
| 260 | |
| 261 | def test_8(self): |
| 262 | # CONN/A2 |
| 263 | resp = b'\x05\x00\x14\x03\x10\x00\x00\x00\x54\x00\x00\x00\x00\x00' + \ |
| 264 | b'\x00\x00\x10\x00\x05\x00\x06\x00\x00\x00\x01\x00\x00\x00' + \ |
| 265 | b'\x03\x00\x00\x00\x61\xec\x8b\xb3\x40\x28\xa8\x46\xba\xfd' + \ |
| 266 | b'\x90\xcf\x6d\x31\xdc\x29\x03\x00\x00\x00\xbc\x38\x10\x35' + \ |
| 267 | b'\xa7\xf0\x3d\x43\x9c\x3f\x44\x85\x6e\xf1\xc3\xb0\x04\x00' + \ |
| 268 | b'\x00\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x00\x01\x00' |
| 269 | |
| 270 | packet = rpch.RTSHeader(resp) |
| 271 | packet.dump() |
| 272 | |
| 273 | pduData = packet['pduData'] |
| 274 | numberOfCommands = packet['NumberOfCommands'] |
| 275 | |
| 276 | self.assertEqual(packet['Flags'], rpch.RTS_FLAG_OUT_CHANNEL) |
| 277 | |
| 278 | server_cmds = [] |
| 279 | while numberOfCommands > 0: |
| 280 | numberOfCommands -= 1 |
| 281 | |
| 282 | cmd_type = unpack('<L', pduData[:4])[0] |
| 283 | cmd = rpch.COMMANDS[cmd_type](pduData) |
| 284 | server_cmds.append(cmd) |
| 285 | pduData = pduData[len(cmd):] |
| 286 | |
| 287 | for cmd in server_cmds: |
| 288 | cmd.dump() |
| 289 | |
| 290 | channelLifetime = rpch.ChannelLifetime() |
| 291 | channelLifetime['ChannelLifetime'] = 1073741824 |
| 292 | |
| 293 | self.assertEqual(server_cmds[-2].getData(), channelLifetime.getData()) |
| 294 | |
| 295 | |
| 296 | # Process command-line arguments. |