diff --git a/src/server/portal/mxp.py b/src/server/portal/mxp.py index 05d9958a05..56463ce473 100644 --- a/src/server/portal/mxp.py +++ b/src/server/portal/mxp.py @@ -51,6 +51,7 @@ class Mxp(object): Client does not support MXP. """ self.protocol.protocol_flags["MXP"] = False + self.protocol.handshake_done() def do_mxp(self, option): """ diff --git a/src/server/portal/portalsessionhandler.py b/src/server/portal/portalsessionhandler.py index 0d9b1e3b08..290dd04b4d 100644 --- a/src/server/portal/portalsessionhandler.py +++ b/src/server/portal/portalsessionhandler.py @@ -64,10 +64,11 @@ 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 + # we only send sessdata that should not have changed + # at the server level at this point sessdata = dict((key, val) for key, val in sessdata.items() if key in ("protocol_key", "address", + "sessid", "suid", "conn_time", "protocol_flags", diff --git a/src/server/session.py b/src/server/session.py index a0e8c81ca4..2b2d499854 100644 --- a/src/server/session.py +++ b/src/server/session.py @@ -95,7 +95,7 @@ class Session(object): and loads it into the correct properties of the session. """ for propname, value in sessdata.items(): - self.__dict__[propname] = value + setattr(self, propname, value) def at_sync(self): """ diff --git a/src/server/sessionhandler.py b/src/server/sessionhandler.py index b4b17eff02..8d12482161 100644 --- a/src/server/sessionhandler.py +++ b/src/server/sessionhandler.py @@ -344,7 +344,7 @@ class ServerSessionHandler(SessionHandler): session.logged_in = True # sync the portal to the session - sessdata = session.get_sync_data() + sessdata = {"logged_in": True} if not testmode: self.server.amp_protocol.call_remote_PortalAdmin(session.sessid, operation=SLOGIN,