Resolves issue 195. A typo in the sessionhandler that lead to big consequences.
This commit is contained in:
parent
2597df0512
commit
bab89b191b
2 changed files with 6 additions and 7 deletions
|
|
@ -194,6 +194,7 @@ class AMPProtocol(amp.AMP):
|
||||||
"""
|
"""
|
||||||
if hasattr(self.factory, "portal"):
|
if hasattr(self.factory, "portal"):
|
||||||
sessdata = self.factory.portal.sessions.get_all_sync_data()
|
sessdata = self.factory.portal.sessions.get_all_sync_data()
|
||||||
|
print sessdata
|
||||||
self.call_remote_ServerAdmin(0,
|
self.call_remote_ServerAdmin(0,
|
||||||
"PSYNC",
|
"PSYNC",
|
||||||
data=sessdata)
|
data=sessdata)
|
||||||
|
|
@ -266,7 +267,7 @@ class AMPProtocol(amp.AMP):
|
||||||
data = pickle.loads(utils.to_str(data))
|
data = pickle.loads(utils.to_str(data))
|
||||||
|
|
||||||
#print "serveradmin (server side):", sessid, operation, data
|
#print "serveradmin (server side):", sessid, operation, data
|
||||||
|
|
||||||
if operation == 'PCONN': #portal_session_connect
|
if operation == 'PCONN': #portal_session_connect
|
||||||
# create a new session and sync it
|
# create a new session and sync it
|
||||||
sess = ServerSession()
|
sess = ServerSession()
|
||||||
|
|
@ -278,7 +279,7 @@ class AMPProtocol(amp.AMP):
|
||||||
sess.at_sync() # this runs initialization without acr
|
sess.at_sync() # this runs initialization without acr
|
||||||
|
|
||||||
self.factory.server.sessions.portal_connect(sessid, sess)
|
self.factory.server.sessions.portal_connect(sessid, sess)
|
||||||
|
|
||||||
elif operation == 'PDISCONN': #'portal_session_disconnect'
|
elif operation == 'PDISCONN': #'portal_session_disconnect'
|
||||||
# session closed from portal side
|
# session closed from portal side
|
||||||
self.factory.server.sessions.portal_disconnect(sessid)
|
self.factory.server.sessions.portal_disconnect(sessid)
|
||||||
|
|
@ -295,10 +296,9 @@ class AMPProtocol(amp.AMP):
|
||||||
sess.load_sync_data(sessdict)
|
sess.load_sync_data(sessdict)
|
||||||
if sess.uid:
|
if sess.uid:
|
||||||
sess.player = PlayerDB.objects.get_player_from_uid(sess.uid)
|
sess.player = PlayerDB.objects.get_player_from_uid(sess.uid)
|
||||||
sesslist.append(sess)
|
sesslist.append(sess)
|
||||||
# replace sessions on server
|
# replace sessions on server
|
||||||
server_sessionhandler.portal_session_sync(sesslist)
|
server_sessionhandler.portal_session_sync(sesslist)
|
||||||
|
|
||||||
# after sync is complete we force-validate all scripts (this starts everthing)
|
# after sync is complete we force-validate all scripts (this starts everthing)
|
||||||
init_mode = ServerConfig.objects.conf("server_restart_mode", default=None)
|
init_mode = ServerConfig.objects.conf("server_restart_mode", default=None)
|
||||||
ScriptDB.objects.validate(init_mode=init_mode)
|
ScriptDB.objects.validate(init_mode=init_mode)
|
||||||
|
|
@ -306,8 +306,7 @@ class AMPProtocol(amp.AMP):
|
||||||
|
|
||||||
else:
|
else:
|
||||||
raise Exception(_("operation %(op)s not recognized.") % {'op': operation})
|
raise Exception(_("operation %(op)s not recognized.") % {'op': operation})
|
||||||
|
|
||||||
|
|
||||||
return {}
|
return {}
|
||||||
ServerAdmin.responder(amp_server_admin)
|
ServerAdmin.responder(amp_server_admin)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ class ServerSession(Session):
|
||||||
if not self.logged_in:
|
if not self.logged_in:
|
||||||
return
|
return
|
||||||
|
|
||||||
player = self.get_player(1)
|
player = self.get_player()
|
||||||
character = self.get_character()
|
character = self.get_character()
|
||||||
if player:
|
if player:
|
||||||
#print "sync: at_init() - player"
|
#print "sync: at_init() - player"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue