Skip to content
This repository has been archived by the owner on Apr 26, 2024. It is now read-only.

Commit

Permalink
Port federation/ to py3 (#3847)
Browse files Browse the repository at this point in the history
  • Loading branch information
hawkowl committed Sep 12, 2018
1 parent 546aee7 commit 7ca097f
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 19 deletions.
1 change: 1 addition & 0 deletions changelog.d/3847.misc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
federation/ is now ported to Python 3.
8 changes: 4 additions & 4 deletions synapse/federation/federation_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -271,10 +271,10 @@ def get_pdu(self, destinations, event_id, outlier=False, timeout=None):
event_id, destination, e,
)
except NotRetryingDestination as e:
logger.info(e.message)
logger.info(str(e))
continue
except FederationDeniedError as e:
logger.info(e.message)
logger.info(str(e))
continue
except Exception as e:
pdu_attempts[destination] = now
Expand Down Expand Up @@ -510,7 +510,7 @@ def _try_destination_list(self, description, destinations, callback):
else:
logger.warn(
"Failed to %s via %s: %i %s",
description, destination, e.code, e.message,
description, destination, e.code, e.args[0],
)
except Exception:
logger.warn(
Expand Down Expand Up @@ -875,7 +875,7 @@ def forward_third_party_invite(self, destinations, room_id, event_dict):
except Exception as e:
logger.exception(
"Failed to send_third_party_invite via %s: %s",
destination, e.message
destination, str(e)
)

raise RuntimeError("Failed to send to any server.")
5 changes: 3 additions & 2 deletions synapse/federation/transport/client.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,8 @@
# limitations under the License.

import logging
import urllib

from six.moves import urllib

from twisted.internet import defer

Expand Down Expand Up @@ -951,4 +952,4 @@ def _create_path(prefix, path, *args):
Returns:
str
"""
return prefix + path % tuple(urllib.quote(arg, "") for arg in args)
return prefix + path % tuple(urllib.parse.quote(arg, "") for arg in args)
24 changes: 11 additions & 13 deletions synapse/federation/transport/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,8 @@ def __init__(self, hs):
@defer.inlineCallbacks
def authenticate_request(self, request, content):
json_request = {
"method": request.method,
"uri": request.uri,
"method": request.method.decode('ascii'),
"uri": request.uri.decode('ascii'),
"destination": self.server_name,
"signatures": {},
}
Expand Down Expand Up @@ -252,7 +252,7 @@ def new_func(request, *args, **kwargs):
by the callback method. None if the request has already been handled.
"""
content = None
if request.method in ["PUT", "POST"]:
if request.method in [b"PUT", b"POST"]:
# TODO: Handle other method types? other content types?
content = parse_json_object_from_request(request)

Expand Down Expand Up @@ -386,7 +386,7 @@ def on_GET(self, origin, content, query, context):
return self.handler.on_context_state_request(
origin,
context,
query.get("event_id", [None])[0],
parse_string_from_args(query, "event_id", None),
)


Expand All @@ -397,22 +397,20 @@ def on_GET(self, origin, content, query, room_id):
return self.handler.on_state_ids_request(
origin,
room_id,
query.get("event_id", [None])[0],
parse_string_from_args(query, "event_id", None),
)


class FederationBackfillServlet(BaseFederationServlet):
PATH = "/backfill/(?P<context>[^/]*)/"

def on_GET(self, origin, content, query, context):
versions = query["v"]
limits = query["limit"]
versions = [x.decode('ascii') for x in query[b"v"]]
limit = parse_integer_from_args(query, "limit", None)

if not limits:
if not limit:
return defer.succeed((400, {"error": "Did not include limit param"}))

limit = int(limits[-1])

return self.handler.on_backfill_request(origin, context, versions, limit)


Expand All @@ -423,7 +421,7 @@ class FederationQueryServlet(BaseFederationServlet):
def on_GET(self, origin, content, query, query_type):
return self.handler.on_query_request(
query_type,
{k: v[0].decode("utf-8") for k, v in query.items()}
{k.decode('utf8'): v[0].decode("utf-8") for k, v in query.items()}
)


Expand Down Expand Up @@ -630,14 +628,14 @@ class OpenIdUserInfo(BaseFederationServlet):

@defer.inlineCallbacks
def on_GET(self, origin, content, query):
token = query.get("access_token", [None])[0]
token = query.get(b"access_token", [None])[0]
if token is None:
defer.returnValue((401, {
"errcode": "M_MISSING_TOKEN", "error": "Access Token required"
}))
return

user_id = yield self.handler.on_openid_userinfo(token)
user_id = yield self.handler.on_openid_userinfo(token.decode('ascii'))

if user_id is None:
defer.returnValue((401, {
Expand Down

0 comments on commit 7ca097f

Please sign in to comment.