Пример #1
0
 def send(self, context):
     if isinstance(context, str):
         context = Context(context)
     con = self.get(context.target)
     if con:
         self.log.debug("Send data [%s] to [%s]" % (context.cmd(), context.target))
         con.sendall(context.cmd())
     else:
         self.log.debug("Connection not found for [%s]" % (context.target))
Пример #2
0
    def recvServerData(self):
        self.log.info('Thread start for recv data.')
        while not self.stopEvent.is_set():
            try:
                data = self.socket.recv(self.buffSize)
            except socket.timeout:
                continue
            if not data:
                self.log.error('Server close connection.')
                break

            if data.startswith(self.name) or (self.alias is not None and data.startswith(self.alias)):
                context = Context(data)
                context.client = self
                result = CommandExecutor(context).run()
                if not result:
                    result = 'Execute success but no message.'
                    self.sendLog(result)
            else:
                self.log.info(data)
Пример #3
0
 def handleClient(self, conn, addr):
     conn.settimeout(self.recvTimeout)
     while not self.stopEvent.is_set():
         try:
             data = conn.recv(1024)
         except socket.timeout:
             continue
         except socket.error, v:
             break
         if not data:
             break
         data = data.replace("\n", "")
         if not data:
             continue
         for cmd in re.sub(r"([^\\]);", r"\1;;;", data).split(";;;"):
             cmd = self.__checkOrigin(cmd, self.conns.getAlias(addr))
             context = Context(cmd)
             context.connections = self.conns
             context.server = self
             result = self.executeCommand(context)
             if result:
                 self.conns.sendLog(context.origin, result)