diff --git a/src/server/portal/portalsessionhandler.py b/src/server/portal/portalsessionhandler.py index 9ff5d122d7..0d9b1e3b08 100644 --- a/src/server/portal/portalsessionhandler.py +++ b/src/server/portal/portalsessionhandler.py @@ -64,6 +64,14 @@ class PortalSessionHandler(SessionHandler): # only use if session already has sessid (i.e. has already connected) sessdata = session.get_sync_data() if self.portal.amp_protocol: + # we remove sessdata that could already have changed on the + # server level + sessdata = dict((key, val) for key, val in sessdata.items() if key in ("protocol_key", + "address", + "suid", + "conn_time", + "protocol_flags", + "server_data",)) self.portal.amp_protocol.call_remote_ServerAdmin(session.sessid, operation=PCONNSYNC, data=sessdata) diff --git a/src/server/serversession.py b/src/server/serversession.py index 3498d74ffc..825ef2c574 100644 --- a/src/server/serversession.py +++ b/src/server/serversession.py @@ -234,12 +234,6 @@ class ServerSession(Session): Send Evennia -> User """ text = text if text else "" - #if text is None: - # text = "" - #else: - # text = to_unicode(text) - # text = to_str(text, self.encoding) - self.sessionhandler.data_out(self, text=text, **kwargs) def __eq__(self, other): diff --git a/src/server/sessionhandler.py b/src/server/sessionhandler.py index d4498054f1..b4b17eff02 100644 --- a/src/server/sessionhandler.py +++ b/src/server/sessionhandler.py @@ -220,6 +220,11 @@ class ServerSessionHandler(SessionHandler): sessid = portalsessiondata.get("sessid") session = self.sessions.get(sessid) if session: + # since some of the session properties may have had + # a chance to change already before the portal gets here + # the portal doesn't send all sessiondata here, but only + # ones which should only be changed from portal (like + # protocol_flags etc) session.load_sync_data(portalsessiondata) def portal_disconnect(self, sessid):