Example #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)
Example #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)
Example #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])
Example #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)
Example #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)
Example #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]
        )
Example #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))
Example #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
Example #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
Example #10
0
    def test_remain_two(self):
        it = netstruct.iter_unpack(b"b$5i")
        next(it)

        self.assertEqual(it.send(b"\x05"), 25)
Example #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)
Example #12
0
 def test_remaining(self):
     self.assertEqual(next(netstruct.iter_unpack(b"b$5i")), 21)
Example #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)
Example #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.")
Example #15
0
    def test_remain_two(self):
        it = netstruct.iter_unpack(b"b$5i")
        next(it)

        self.assertEqual(it.send(b"\x05"), 25)
Example #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.")
Example #17
0
 def test_remaining(self):
     self.assertEqual(next(netstruct.iter_unpack(b"b$5i")), 21)