class Request: def __init__(self, tor, client_socket, proxy): self.client = client_socket # Create a tor forwarder self.forwarder = TorForwarder(tor, proxy, self) self.staged = "" # recv wrapper def recv(self): # if the forwarder is ready if self.forwarder.connected > 2: # forward any staged data if self.staged != "": self.forwarder.send(self.staged) self.staged = "" # receive any new data and forward it else: data = self.client.recv(1024) if not data: return -1 self.forwarder.send(data) # stage data from client else: self.staged += self.client.recv(1024) # call the forwarder receive wrapper def send(self): data = self.forwarder.recv(10000) # forward data to client self.client.send(data) def fileno(self): return self.client.fileno() def close(self): self.client.close() self.forwarder.close()
def __init__(self, tor, client_socket, proxy): self.client = client_socket # Create a tor forwarder self.forwarder = TorForwarder(tor, proxy, self) self.staged = ""