Example #1
0
 def _packetReceived(self, pkt):
     self.resetTimeout()
     try:
         if self.factory.serverConfig.Debug:
             try:
                 username = self._user.profile.name
             except AttributeError:
                 username = ''            
             log.debug('[RECV {%s}]: %s' % (
                 username, PacketFormatter.format(pkt)))
 
         # handle heartbeat packet here, since it's the same
         # across all types of servers
         if pkt.header.id == 0x0005:
             pkt.header.packet_count = self._count
             self.send(pkt)
             return
         # let subclasses handle it
         self.packetReceived(pkt)
     except:
         log.msg("Error in protocol._packetReceived: %s" % sys.exc_info()[0])
         exc_type, exc_value, exc_traceback = sys.exc_info()
         lines = traceback.format_exception(exc_type, exc_value, exc_traceback)
         log.msg("Lines: %s" % lines)
         log.msg('[RECV {%s}]: %s' % (username, PacketFormatter.format(pkt)))
Example #2
0
 def connectionLost(self, reason):
     log.debug('Connection lost: %s' % reason.getErrorMessage())
     if self.factory.serverConfig.Debug:
         try:
             log.debug('Traceback: %s' % reason.getTraceback())
         except:
             log.msg('Could not log traceback')
Example #3
0
 def sendData(self, packetId, data):
     if self.lobbyConnection is None:
         log.debug(
             'WARN: Cannot send data to user {%s}: no lobby connection' %
             self.hash)
     else:
         self.lobbyConnection.sendData(packetId, data)
Example #4
0
    def _packetReceived(self, pkt):
        self.resetTimeout()
        try:
            if self.factory.serverConfig.Debug:
                try:
                    username = self._user.profile.name
                except AttributeError:
                    username = ''
                log.debug('[RECV {%s}]: %s' %
                          (username, PacketFormatter.format(pkt)))

            # handle heartbeat packet here, since it's the same
            # across all types of servers
            if pkt.header.id == 0x0005:
                pkt.header.packet_count = self._count
                self.send(pkt)
                return
            # let subclasses handle it
            self.packetReceived(pkt)
        except:
            log.msg("Error in protocol._packetReceived: %s" %
                    sys.exc_info()[0])
            exc_type, exc_value, exc_traceback = sys.exc_info()
            lines = traceback.format_exception(exc_type, exc_value,
                                               exc_traceback)
            log.msg("Lines: %s" % lines)
            log.msg('[RECV {%s}]: %s' %
                    (username, PacketFormatter.format(pkt)))
Example #5
0
 def connectionLost(self, reason):
     log.debug('Connection lost: %s' % reason.getErrorMessage())
     if self.factory.serverConfig.Debug:
         try:
             log.debug('Traceback: %s' % reason.getTraceback())
         except:
             log.msg('Could not log traceback')
Example #6
0
 def _keepAlive(self):
     log.debug('DEBUG: KeepAliveManager:: keep-alive query: %s' %
               self.query)
     for item in self.storageController.readPool._items:
         item.value.runQuery(self.query)
     if self.storageController.writePool is not \
             self.storageController.readPool:
         for item in self.storageController.writePool._items:
             item.value.runQuery(self.query)
     self.start()
Example #7
0
 def send(self, pkt):
     #log.msg('sending: %s' % repr(pkt))
     if self.factory.serverConfig.Debug:
         try:
             username = self._user.profile.name
         except AttributeError:
             username = ''
         log.debug('[SEND {%s}]: %s' % (
             username, PacketFormatter.format(pkt)))
     self.transport.write(stream.xorData(str(pkt),0))
     self._count += 1
Example #8
0
 def send(self, pkt):
     #log.msg('sending: %s' % repr(pkt))
     if self.factory.serverConfig.Debug:
         try:
             username = self._user.profile.name
         except AttributeError:
             username = ''
         log.debug('[SEND {%s}]: %s' %
                   (username, PacketFormatter.format(pkt)))
     self.transport.write(stream.xorData(str(pkt), 0))
     self._count += 1
Example #9
0
    def enter(self, usr):
        try:
            log.debug('Room.enter: profiles=%s' % ','.join([x.name for x in usr.profiles]))

            log.debug('Room.enter: self.name=%s' % self.name)
        except:
            log.msg('ERROR logging Room.enter')

        usr.state.inRoom = 1
        usr.state.room = self
        usr.state.spectator = 0
        usr.state.timeCancelledParticipation = None
        if not self.players:
            self.owner = usr
        self.players.append(usr)
Example #10
0
    def enter(self, usr):
        try:
            log.debug('Room.enter: profiles=%s' %
                      ','.join([x.name for x in usr.profiles]))

            log.debug('Room.enter: self.name=%s' % self.name)
        except:
            log.msg('ERROR logging Room.enter')

        usr.state.inRoom = 1
        usr.state.room = self
        usr.state.spectator = 0
        usr.state.timeCancelledParticipation = None
        if not self.players:
            self.owner = usr
        self.players.append(usr)
Example #11
0
    def _packetReceived(self, pkt):
        if self.factory.serverConfig.Debug:
            try:
                username = self._user.profile.name
            except AttributeError:
                username = ''
            log.debug('[RECV {%s}]: %s' %
                      (username, PacketFormatter.format(pkt)))

        # handle heartbeat packet here, since it's the same
        # across all types of servers
        if pkt.header.id == 0x0005:
            pkt.header.packet_count = self._count
            self.send(pkt)
            return
        # let subclasses handle it
        self.packetReceived(pkt)
Example #12
0
 def sendData(self, packetId, data):
     if self.lobbyConnection is None:
         log.debug('WARN: Cannot send data to user {%s}: no lobby connection' % self.hash)
     else:
         self.lobbyConnection.sendData(packetId, data)
Example #13
0
 def exit(self, usr):
     try:
         log.debug('Room.exit: username=%s profiles=%s' % (usr.username, ','.join([x.name for x in usr.profiles])))
         log.debug('Room.exit: usr.state.room.name=%s' % usr.state.room.name)
     except:
         log.msg('ERROR logging Room.exit')
     
     usr.state.inRoom = 0
     usr.state.noLobbyChat = 0
     usr.state.room = None
     
     try:
         log.debug('self.owner.profile.name=%s' % self.owner.profile.name)
     except:
         log.msg('ERROR logging Room.exit (2)')       
         
     try: 
         try:
             for usr2 in self.players:
                 log.debug('self.players.profiles=%s' % ','.join([x.name for x in usr2.profiles]))
         except:
             log.msg('Room.exit: Error iterating (1)  %s' % sys.exc_info()[0])
             exc_type, exc_value, exc_traceback = sys.exc_info()
             lines = traceback.format_exception(exc_type, exc_value, exc_traceback)
             log.msg("Lines: %s" % lines)
         index = self.getPlayerPosition(usr)
         log.debug('popping index=%s' % index)
         exiting = self.players.pop(index)
         try:
             for usr2 in self.players:
                 log.debug('self.players.profiles=%s' % ','.join([x.name for x in usr2.profiles]))
         except:
             log.msg('Room.exit: Error iterating (2)  %s' % sys.exc_info()[0])
             exc_type, exc_value, exc_traceback = sys.exc_info()
             lines = traceback.format_exception(exc_type, exc_value, exc_traceback)
             log.msg("Lines: %s" % lines)
     except:
         log.msg(
             'WARN: player (%s) exiting, but was not in the room' % (
                 usr.profile.name))
     else:
         if self.isOwner(exiting):
             log.debug('owner exiting')
             # owner is exiting: assign new owner, if anybody
             # is still left in the room.
             if self.players:
                 self.setOwner(self.players[0])
Example #14
0
    def exit(self, usr):
        try:
            log.debug('Room.exit: username=%s profiles=%s' %
                      (usr.username, ','.join([x.name for x in usr.profiles])))
            log.debug('Room.exit: usr.state.room.name=%s' %
                      usr.state.room.name)
        except:
            log.msg('ERROR logging Room.exit')

        usr.state.inRoom = 0
        usr.state.noLobbyChat = 0
        usr.state.room = None

        try:
            log.debug('self.owner.profile.name=%s' % self.owner.profile.name)
        except:
            log.msg('ERROR logging Room.exit (2)')

        try:
            try:
                for usr2 in self.players:
                    log.debug('self.players.profiles=%s' %
                              ','.join([x.name for x in usr2.profiles]))
            except:
                log.msg('Room.exit: Error iterating (1)  %s' %
                        sys.exc_info()[0])
                exc_type, exc_value, exc_traceback = sys.exc_info()
                lines = traceback.format_exception(exc_type, exc_value,
                                                   exc_traceback)
                log.msg("Lines: %s" % lines)
            index = self.getPlayerPosition(usr)
            log.debug('popping index=%s' % index)
            exiting = self.players.pop(index)
            try:
                for usr2 in self.players:
                    log.debug('self.players.profiles=%s' %
                              ','.join([x.name for x in usr2.profiles]))
            except:
                log.msg('Room.exit: Error iterating (2)  %s' %
                        sys.exc_info()[0])
                exc_type, exc_value, exc_traceback = sys.exc_info()
                lines = traceback.format_exception(exc_type, exc_value,
                                                   exc_traceback)
                log.msg("Lines: %s" % lines)
        except:
            log.msg('WARN: player (%s) exiting, but was not in the room' %
                    (usr.profile.name))
        else:
            if self.isOwner(exiting):
                log.debug('owner exiting')
                # owner is exiting: assign new owner, if anybody
                # is still left in the room.
                if self.players:
                    self.setOwner(self.players[0])