def process_and_return_context(self):
while not self.finished():
self.req = None
self.resp = None
try:
yield self.read_request()
yield self.handle_http_proxy()
self.send_request()
yield self.read_response()
self.send_response()
except SrcStreamClosedError:
if self.dest_stream:
self.dest_stream.close()
self.context.done = True
if self.req:
raise
except DestStreamClosedError:
self.src_stream.close()
raise
except SwitchToTunnelHttpProxy:
break
if self.switch_protocol:
self.context.scheme = self.req.headers["Upgrade"]
raise gen.Return(self.context)
评论列表
文章目录