From 8cfc7df5514c32b9004b868765954152edc19c41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damir=20Jeli=C4=87?= Date: Wed, 3 Apr 2019 15:36:24 +0200 Subject: [PATCH] daemon: Refactor out the request forwarding logic. --- pantalaimon/daemon.py | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/pantalaimon/daemon.py b/pantalaimon/daemon.py index b0eb7ea..e1b31b9 100755 --- a/pantalaimon/daemon.py +++ b/pantalaimon/daemon.py @@ -55,7 +55,7 @@ class ProxyDaemon: return access_token - async def router(self, request): + async def forward_request(self, request, session): path = request.path method = request.method data = await request.text() @@ -65,20 +65,7 @@ class ProxyDaemon: params = request.query - session = None - - token = self.get_access_token(request) - client = self.client_sessions.get(token, None) - - if client: - session = client.client_session - - if not session: - if not self.default_session: - self.default_session = ClientSession() - session = self.default_session - - async with session.request( + return await session.request( method, self.homeserver + path, data=data, @@ -86,8 +73,23 @@ class ProxyDaemon: headers=headers, proxy=self.proxy, ssl=False - ) as resp: - return(web.Response(text=await resp.text())) + ) + + async def router(self, request): + session = None + + token = self.get_access_token(request) + client = self.client_sessions.get(token, None) + + if client: + session = client.client_session + else: + if not self.default_session: + self.default_session = ClientSession() + session = self.default_session + + resp = await self.forward_request(request, session) + return(web.Response(text=await resp.text())) def _get_login_user(self, body): identifier = body.get("identifier", None)