def connect_server_err_call_back(self, ret): retmsg = self.conn.send( socks5.Response(status=socks5.RESP_STATUS["HOST_UNREACHABLE"], atyp=self.request.atyp, addr=self.request.addr, port=int(self.request.port))) retmsg = encryto.encode(self.box_index, retmsg) self.transport.write(retmsg) self.transport.loseConnection()
def connect_server_call_back(self, ret): self.client = ret retmsg = self.conn.send( socks5.Response(status=socks5.RESP_STATUS["SUCCESS"], atyp=self.request.atyp, addr=self.request.addr, port=int(self.request.port))) retmsg = encryto.encode(self.box_index, retmsg) self.transport.write(retmsg) self.stage = 2
def dataReceived(self, data): try: if self.stage == 0: index_data = data[:4] self.box_index = struct.unpack("I", index_data)[0] data = data[4:] data = encryto.decode(self.box_index, data) self.conn.recv(data) greeting_res = socks5.GreetingResponse( socks5.AUTH_TYPE["NO_AUTH"]) ret_data = self.conn.send(greeting_res) ret_data = encryto.encode(self.box_index, ret_data) self.transport.write(ret_data) self.stage = 1 elif self.stage == 1: data = encryto.decode(self.box_index, data) self.request = self.conn.recv(data) self.connect_sever(self.request.addr, int(self.request.port)) elif self.stage == 2: data = encryto.decode(self.box_index, data) self.client.transport.write(data) except: # print(e.with_traceback()) self.transport.loseConnection()
def dataReceived(self, data): if self.client: data = encryto.encode(self.box_index, data) self.client.transport.write(data) else: self.msg_cache.append(data)
def connect_server_call_back(self, ret): self.client = ret for msg in self.msg_cache: data = encryto.encode(self.box_index, msg) self.client.transport.write(data) self.msg_cache = []
def dataReceived(self, data): data = encryto.encode(self.s5.box_index, data) self.s5.transport.write(data)