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))
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)
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)