def process_and_return_context(self):
self.socks_conn.initiate_connection()
while True:
try:
data = yield self.context.src_stream.read_bytes(1024, partial=True)
except iostream.StreamClosedError:
raise SrcStreamClosedError(
detail="client closed while socks handshaking")
_event = self.socks_conn.recv(data)
if _event == "GreetingRequest":
yield self.handle_greeting_request(_event)
elif _event == "Request":
dest_stream, host, port = yield self.handle_request_and_create_destination(_event)
self.context.dest_stream = dest_stream
self.context.host = host
self.context.port = port
break
else:
raise NotImplementedError("not handling with {0}".format(_event))
raise gen.Return(self.context)
评论列表
文章目录