From 17a20195c040902d1019a786f130bee1a49b7b86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Damir=20Jeli=C4=87?= Date: Mon, 29 Apr 2019 12:58:59 +0200 Subject: [PATCH] daemon: Use pan's token to perform client syncs. The clients need to use pan's sync token so the transaction ids in the sync response don't get lost since sending happens using pan's device and token. --- pantalaimon/daemon.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/pantalaimon/daemon.py b/pantalaimon/daemon.py index ae75078..6ce5242 100755 --- a/pantalaimon/daemon.py +++ b/pantalaimon/daemon.py @@ -197,9 +197,10 @@ class ProxyDaemon: async def forward_request( self, - request, # type: aiohttp.web.BaseRequest - params=None, # type: CIMultiDict - session=None # type: aiohttp.ClientSession + request, # type: aiohttp.web.BaseRequest + params=None, # type: CIMultiDict + session=None, # type: aiohttp.ClientSession + token=None # type: str ): # type: (...) -> aiohttp.ClientResponse """Forward the given request to our configured homeserver. @@ -210,7 +211,6 @@ class ProxyDaemon: session (aiohttp.ClientSession): The client session that should be used to forward the request. """ - if not session: if not self.default_session: self.default_session = ClientSession() @@ -226,6 +226,12 @@ class ProxyDaemon: params = params or request.query + if token: + if "Authorization" in headers: + headers["Authorization"] = token + if "access_token" in params: + params["access_token"] = token + data = await request.text() return await session.request( @@ -388,7 +394,6 @@ class ProxyDaemon: return self._unknown_token sync_filter = request.query.get("filter", None) - # timeout = request.query.get("timeout", None) try: sync_filter = json.loads(sync_filter) @@ -411,7 +416,11 @@ class ProxyDaemon: query = CIMultiDict(request.query) query.pop("filter", None) - response = await self.forward_request(request, query) + response = await self.forward_request( + request, + query, + token=client.access_token + ) if response.status == 200: json_response = await response.json()