we're not running in a peered environment. Technically it might be
better to add the PeerManager to the lifecycle in init, but I don't
want to screw with the shutdown order, and this is the lowest-impact
solution.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6021 542714f4-19e9-0310-aa3c-eee0fc999fb1
automatically canceled when the omgr is shutdown (they actually cancel
themselves if they fire after the omgr has been shutdown, which stock intervals
also do, but these guys do so quietly because we know they mean to work that
way).
Made use of that new method and the fluent schedule methods in various places.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5880 542714f4-19e9-0310-aa3c-eee0fc999fb1
functional fun, which is what mdb probably intended.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5873 542714f4-19e9-0310-aa3c-eee0fc999fb1
PresentsSession, we don't need to or want to change our auth name, we can and
should operate entirely on ClientObject.username. The ClientManager maintains
two mappings: "current username" -> ClientObject (which is what needs to change
when setUsername or updateUsername is called) and "authname" -> PresentsSession
which has always been just the authname and has never changed during the course
of a session. PresentsSession.getUsername() goes away and
PresentsSession.getAuthName() always returns the name that was used to
authenticate the session.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5838 542714f4-19e9-0310-aa3c-eee0fc999fb1
authenticators and chained session factories. We can share a lot more code this
way and the implicit requirement that the default authenticator/factory had to
be configured before anyone else configured a chanied author/factory is gone.
The other big change is that Credentials doesn't require a username
(UsernamePasswordCreds inherits that username so most derived classes don't
notice any difference). Instead we require that a canonical authentication
username be determined and configured in AuthingConnection during the
authentication process. This canonical username is then used to resolve the
client session and map everything in the client manager.
This is pretty much exactly what was going on before except that we were doing
it all in an ad hoc way by jamming a new name into Credentials during the
authentication process and also doing jiggery pokery in
PresentsSession.assignStartingUsername. That all goes away and/or becomes
cleaner and more explicit.
This is going to impact some Yohoho jiggery pokery, which I will shortly commit
a patch for, but we're going to need to test it. Omelets, eggs, etc.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5828 542714f4-19e9-0310-aa3c-eee0fc999fb1
non-work project). I promise to stop fooling around now.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5805 542714f4-19e9-0310-aa3c-eee0fc999fb1
server business. I'd move the whole kit and kaboodle to samskivert but that
would mean moving the DependencyGraph as well...
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5804 542714f4-19e9-0310-aa3c-eee0fc999fb1
initialization and shutdown. This will obviate the need for a lot of manual
wiring up. ShutdownManager still works and passes through to LifecycleManager,
but switching to the new deal is encouraged.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5802 542714f4-19e9-0310-aa3c-eee0fc999fb1
so let's keep with that pattern for any clients there when the
peer itself connects or disconnects.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5713 542714f4-19e9-0310-aa3c-eee0fc999fb1
for every client on another node when it connects or disconnects from that node.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5696 542714f4-19e9-0310-aa3c-eee0fc999fb1
classes naturally remove extra crap from the NodeObject as a result of the
client departing this node, it all goes out in a single event. Cross-server
traffic-- go!
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5684 542714f4-19e9-0310-aa3c-eee0fc999fb1
that actually needs to look clients up by visible name (chat forwarding), we'll
just leave things as is (as in mapped by auth username) and take care of our
own shit in ClientPeerManager.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5683 542714f4-19e9-0310-aa3c-eee0fc999fb1
authentication name.
- Use new (ca. 2002) pattern of creating an overridable listener,
rather than making the whole class a listener.
Mdb told me to add this at the msoy level, but I think it belongs here.
Presents simply expects a user to be in one place.
It also occurs to me that we probably want something more sophisticated:
there may be unpersisted data connected to the session that should
be flushed prior to the session starting on another node. We may
want something like a lock when users log-in, so that other nodes
can terminate the session and flush any persistent data FIRST.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5635 542714f4-19e9-0310-aa3c-eee0fc999fb1
Don't wait up to 60 seconds for the next peer refresh interval.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5514 542714f4-19e9-0310-aa3c-eee0fc999fb1
polled socket system. This much more cleanly and efficiently integrates peer
(and other server to server) connections into the normal server I/O framework
and should also eliminate for good the annoying server hangs that result when
our old blocking client I/O threads got their pants wedged.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5510 542714f4-19e9-0310-aa3c-eee0fc999fb1