From eb41f8b70b8cd0db7696dcfe92d0f17a544ba28c Mon Sep 17 00:00:00 2001 From: Mark Johnson Date: Tue, 15 Feb 2011 18:42:46 +0000 Subject: [PATCH] - The secret would not be properly assigned to the ClientLocal during session resuming (and likely on peer transfers of client connections), so have PresentsSession handle that in both starting and resuming a session (and takes out a synchronized call in ClientManager). git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6495 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../java/com/threerings/presents/server/ClientManager.java | 6 ------ .../com/threerings/presents/server/PresentsSession.java | 6 ++++++ 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/threerings/presents/server/ClientManager.java b/src/main/java/com/threerings/presents/server/ClientManager.java index 9a04fcda9..a8669151f 100644 --- a/src/main/java/com/threerings/presents/server/ClientManager.java +++ b/src/main/java/com/threerings/presents/server/ClientManager.java @@ -390,12 +390,6 @@ public class ClientManager // immediately clobj.release(); - // Grab the shared secret from the session and stick it into the client local - PresentsSession session = getClient(username); - if (session != null) { - clobj.getLocal(ClientLocal.class).secret = session.getSecret(); - } - // stuff the object into the mapping table _objmap.put(username, clobj); diff --git a/src/main/java/com/threerings/presents/server/PresentsSession.java b/src/main/java/com/threerings/presents/server/PresentsSession.java index 34edbbaea..0b70a74c2 100644 --- a/src/main/java/com/threerings/presents/server/PresentsSession.java +++ b/src/main/java/com/threerings/presents/server/PresentsSession.java @@ -402,6 +402,9 @@ public class PresentsSession return; } + // Dump our secret into the client local for easy access + clobj.getLocal(ClientLocal.class).secret = getSecret(); + // finish up our regular business sessionWillStart(); sendBootstrap(); @@ -545,6 +548,9 @@ public class PresentsSession return; } + // Update our client secret with the new auth request + _clobj.getLocal(ClientLocal.class).secret = getSecret(); + // let derived classes do any session resuming sessionWillResume();