Esempio n. 1
0
 def listenLoop(self):
     print "Listen Loop Begin..."
     while True:
         data = self.m_socket.recv(1024 * 16)  # 16KB Recv Buffer
         if self.m_encryptionEnabled:
             print "Encrypted Packet"
             decData = self.m_encryptionModule.decryptData(data)
             (packetID, ), restData = netstruct.iter_unpack("i", decData)
             self.m_packetHandlers.get(packetID)(restData)
         else:
             print "Uncrypted Packet"
             (packetID, ), restData = netstruct.iter_unpack("i", data)
             self.m_packetHandlers.get(packetID)(restData)
Esempio n. 2
0
    def test_remain_three(self):
        it = netstruct.iter_unpack(b"b$5i")
        next(it)
        it.send(b"\x05")
        it.send(b"Hell")

        self.assertEqual(next(it), 21)
Esempio n. 3
0
    def test_total(self):
        it = netstruct.iter_unpack(b"b$4h")
        next(it)
        it.send(b"\x05Hello")

        self.assertEqual(it.send(b"\x01\x02\x03\x04\x05\x06\x07\x08"),
                         [b"Hello", 258, 772, 1286, 1800])
Esempio n. 4
0
 def handleLoginResponse(self, data):
     print "Got Login Response"
     (statusResponse, ), restData = netstruct.iter_unpack("i", data)
     if statusResponse == 0:
         self.handleLoginOkay(data)
     else:
         self.handleLoginError(statusResponse, data)
Esempio n. 5
0
    def test_remain_three(self):
        it = netstruct.iter_unpack(b"b$5i")
        next(it)
        it.send(b"\x05")
        it.send(b"Hell")

        self.assertEqual(next(it), 21)
Esempio n. 6
0
    def test_total(self):
        it = netstruct.iter_unpack(b"b$4h")
        next(it)
        it.send(b"\x05Hello")

        self.assertEqual(
            it.send(b"\x01\x02\x03\x04\x05\x06\x07\x08"),
            [b"Hello", 258, 772, 1286, 1800]
        )
Esempio n. 7
0
    def handleRoomMessage(self, data):
        (roomid, ), restData = netstruct.iter_unpack("b$", data)

        messageData = self.m_lengthdString.parse(restData).data

        for badWord in Config.BAD_WORDS:
            pattern = re.compile(badWord, re.IGNORECASE)
            messageData = pattern.sub("*****", messageData)

        room = RoomManager.Instance().getRoomByID(roomid)
        room.broadcastRoomMessage(ChatMessage(self, roomid, messageData))
Esempio n. 8
0
    def listenLoop(self):
        while True:
            try:
                data = self.m_clientSocket.recv(1024 * 16)  # 16KB Buffer
                if len(data) == 0:
                    print "Client Disconnected"
                    return

                if self.m_encryptionEnabled:
                    print "Encrypted Packet"
                    decData = self.m_encryptionModule.decryptData(data)
                    (packetID, ), restData = netstruct.iter_unpack(
                        "i", decData)
                    print "PacketID: " + str(packetID)
                    self.m_packetHandlers.get(packetID)(restData)
                else:
                    print "Uncrypted Packet"
                    (packetID, ), restData = netstruct.iter_unpack("i", data)
                    print "PacketID: " + str(packetID)
                    self.m_packetHandlers.get(packetID)(restData)
            except Exception:
                RoomManager.Instance().removeUserFromAllRooms(self)
                print "Disconnected due to Error in Handling"
                return
Esempio n. 9
0
    def handleRoomMessage(self, data):
        print "Handling Room Message"
        (
            roomID,
            messageID,
            ownerID,
        ), restData = netstruct.iter_unpack("b$b$b$", data)

        content = self.m_lengthdString.parse(restData).data

        RoomManager.Instance().getRoomByID(roomID).callbackRoomMessage(
            messageID, ownerID, content)

        RoomManager.Instance().notifyRoomsAboutUpdate(roomID, ownerID,
                                                      messageID, content)
        return
Esempio n. 10
0
    def test_remain_two(self):
        it = netstruct.iter_unpack(b"b$5i")
        next(it)

        self.assertEqual(it.send(b"\x05"), 25)
Esempio n. 11
0
    def test_empty_send(self):
        it = netstruct.iter_unpack(b"b$5i")
        next(it)
        it.send(b"\x05")

        self.assertEqual(it.send(b""), 25)
Esempio n. 12
0
 def test_remaining(self):
     self.assertEqual(next(netstruct.iter_unpack(b"b$5i")), 21)
Esempio n. 13
0
    def test_empty_send(self):
        it = netstruct.iter_unpack(b"b$5i")
        next(it)
        it.send(b"\x05")

        self.assertEqual(it.send(b""), 25)
Esempio n. 14
0
    def test_overage(self):
        it = netstruct.iter_unpack(b"b$4h")
        next(it)
        it.send(b"\x05Hello\x01\x02\x03\x04\x05\x06\x07\x08Test Here.")

        self.assertEqual(next(it), b"Test Here.")
Esempio n. 15
0
    def test_remain_two(self):
        it = netstruct.iter_unpack(b"b$5i")
        next(it)

        self.assertEqual(it.send(b"\x05"), 25)
Esempio n. 16
0
    def test_overage(self):
        it = netstruct.iter_unpack(b"b$4h")
        next(it)
        it.send(b"\x05Hello\x01\x02\x03\x04\x05\x06\x07\x08Test Here.")

        self.assertEqual(next(it), b"Test Here.")
Esempio n. 17
0
 def test_remaining(self):
     self.assertEqual(next(netstruct.iter_unpack(b"b$5i")), 21)