Commit Graph

88 Commits

Author SHA1 Message Date
Dave Hoover 83f71c606e @Override gets the point across
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6038 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-02-10 20:32:51 +00:00
Dave Hoover fdf51a634a Welcome to the future.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6008 542714f4-19e9-0310-aa3c-eee0fc999fb1
2010-01-04 21:47:46 +00:00
Michael Bayne 6e9077780c Added/updated source headers.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5829 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-06-20 21:09:34 +00:00
Michael Bayne a1aa2d77ae Revamping/cleanup of how we handle authentication usernames as well as chained
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
2009-06-20 00:56:01 +00:00
Andrzej Kapolka 31e9807c05 Note the actual transport with which events are transmitted.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5794 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-05-21 18:41:42 +00:00
Andrzej Kapolka 6dd16483be Added an extra step to the datagram negotation process. Before
the server starts sending datagrams willy-nilly, it must wait for 
a (reliable) go-ahead from the client.  Otherwise, it's possible 
that the server may be successfully receiving datagrams but not 
sending them.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5792 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-05-21 04:16:41 +00:00
Michael Bayne 688f2580ed Varargified log calls.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5697 542714f4-19e9-0310-aa3c-eee0fc999fb1
2009-03-26 00:02:19 +00:00
Michael Bayne 89f02fc728 Created ServerCommunicator which does all I/O using the ConnectionManager's
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
2008-11-07 00:27:07 +00:00
Michael Bayne c69630b7e0 PresentsClient -> PresentsSession (Jamie's suggestion) and associated changes
on down the client.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5508 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-06 18:04:42 +00:00
Jamie Doornbos 14755a6cea Fixed fundamental flaw with throttling code. Changed the client to adjust its message rate when it actually sends the throttle updated message. Otherwise the client starts sending at the new rate before the server knows about it. Keep the messages per second in the message.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5499 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-11-04 08:37:13 +00:00
Michael Bayne 2e8b63435a Thinking about it more, what we really want is for the client to target the per
second rate (10 messages per second), and to do the same 10x buffer on the
server that we were doing before so that we avoid disconnects due to network
congestion (which might "save up" some throttled messages and then end up
delivering them in a bunch with some later messages).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5424 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-08 20:13:30 +00:00
Michael Bayne 9c65e203b5 Client side message throttling. The server is configured with a hard limit, it
communicates that limit to the client which queues outgoing messages so that it
does not exceed the limit. When the throttle is changed, the server does not
apply the new throttle until the client has ACKed it to avoid edge cases where
the client is up against the limit when the throttle changes.

ActionScript side of all of this forthcoming as well as more testing.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5422 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-08 19:38:00 +00:00
Dave Hoover f05b9eb9ae Javadoc fixes plus svn keywords.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5407 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-10-01 17:35:59 +00:00
Dave Hoover 657aafaedb And of course, if I were thinking this morning, I would've rerun the organize imports
thing before committing instead of just going "oh yeah, I've been having this stuff
sitting around uncommitted for a while waiting on it to be blessed" and missing
out on things that'd changed in the meantime.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5400 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-09-26 17:35:29 +00:00
Dave Hoover 8856120403 Import cleanups
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5399 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-09-26 17:29:59 +00:00
Dave Hoover 8a8b615f9d Clean up some warnings I'm getting in super-pedantic mode.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5268 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-07-28 17:23:07 +00:00
Michael Bayne dde4e4bfdf Presents supports streaming lists natively now, so just use an array list.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5254 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-07-22 15:06:36 +00:00
Michael Bayne 0a893e1de1 ZOMG, Narya now perfectly passes our coding standards as enforced by
CheckStyle. The checks are slightly looser than I'd like but way better than
nothing and we get a bunch of other useful warnings like shadowed names and
other handy bits.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5253 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-07-22 14:36:54 +00:00
Michael Bayne 5c4ab96880 Styley stylopolis.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5252 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-07-22 14:01:51 +00:00
Dave Hoover 6b1d65553f And finally, narya gets the imports/overrides/regen love.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5241 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-07-18 23:20:17 +00:00
Michael Bayne 09722edcd7 Nix some unused imports.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5202 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-06-29 12:37:06 +00:00
Michael Bayne 919112cf88 Switch to new samskivert logging API.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5134 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-05-27 19:25:38 +00:00
Andrzej Kapolka 117fb1a67b The problem was elsewhere, so revert the last couple of changes.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5106 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-05-18 06:59:16 +00:00
Andrzej Kapolka 7a1ec4a3a1 Let's see if it helps to have the enum outside the class.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5105 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-05-17 01:52:32 +00:00
Andrzej Kapolka 814ad6b1d7 Third time's a charm: apparently values() is problematic, so
let's try using a normal HashMap.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5104 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-05-16 22:16:50 +00:00
Andrzej Kapolka 817c7014b4 Apparently EnumMap doesn't work with Retroweaver, so let's try
using an array instead.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5103 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-05-16 21:25:22 +00:00
Andrzej Kapolka ee74481cad Much work on generalizing the notion of message "transport" and
allowing the use of annotations to customize transport for 
DObject fields and service/receiver methods.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5099 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-05-16 01:47:33 +00:00
Andrzej Kapolka 9bafa5e7c8 Basic support for datagram messaging. Hope I haven't fucked
anything up!


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5090 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-05-13 21:12:39 +00:00
Michael Bayne 4328cc7875 Yohoho needs to replace the auth response data on the fly. Allow it.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@5010 542714f4-19e9-0310-aa3c-eee0fc999fb1
2008-04-22 21:23:37 +00:00
Michael Bayne 810969f6f9 Pass a message along with a FailureResponse.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4819 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-08-22 01:15:39 +00:00
Michael Bayne cefe7f0788 Widened.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4665 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-04-18 01:16:57 +00:00
Michael Bayne 30252afc83 Apparently that's an IOException by the time it makes it up to us.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4641 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-03-31 02:35:49 +00:00
Michael Bayne 3e2080cfd2 If we fail to read the AuthRequest from an out of date client, don't stick a
fork in the proceedings, pass the partially initialized request on to the
authenticator who will either get a version of 0 or an out of date version and
reject them properly.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4640 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-03-31 02:20:01 +00:00
Michael Bayne 09f0bee0f3 Yet more header patrol.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4602 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-02-24 00:39:27 +00:00
Michael Bayne b7e16c86f5 Added getBootGroups() to Client, made use of it.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4555 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-02-11 03:08:04 +00:00
Michael Bayne 9afcc526a0 Bit the bullet and implemented invocation service groups so that our various
MetaSOY clients (Swiftly, World, and soon Admin Dashboard) don't have to know
about a bunch of unrelated crap. Fricking complexity++, grumble.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4551 542714f4-19e9-0310-aa3c-eee0fc999fb1
2007-02-11 00:42:35 +00:00
Michael Bayne 7379cf09db Communicate the client's timezone to the server during the authentication
process and keep that information around in case the server ever wants to know.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4356 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-09-07 01:56:41 +00:00
Michael Bayne 8afd0316ec I decided to go hog wild and clean up all the type use in Presents which
required some serious bending and folding of the generic type system, but for
the most part we managed to avoid any mutilating. The gendobj task now
generates properly typed "addToXXX" and "updateXXX" DSet methods based on the
parameterized type of the DSet. This might cause unrecompiled code to break,
but I don't think there are many cases in the base toolkit where people call
DSet adders or updaters. We'll see and I'll add backwards compatibility
versions for cases where we need them to support GG games (everything else we
can just recompile).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4245 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-07-05 00:55:05 +00:00
Ray Greenwell 79c6427c21 StringBuffer -> StringBuilder.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4191 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-06-13 22:42:20 +00:00
Ray Greenwell 5bd90aa797 Stop using TrackedObjects.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3726 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-10-11 19:17:43 +00:00
Michael Bayne dd2468b140 Javadoc tidying up.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3725 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-10-08 22:21:19 +00:00
Michael Bayne 74b44bc21c Added setUsername().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3591 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-06-08 23:36:27 +00:00
Michael Bayne 60c589be4d Arg. I can't change this or no one will be able to get the "failed"
response telling them to upgrade. Note to self, do the thing where the
server immediately writes the version number to the auth stream so that we
don't have to worry about this sort of legacy crap.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3410 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-03-15 22:39:19 +00:00
Michael Bayne e018791a80 No need for these classes to extend DObject, that's weird.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3404 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-03-15 00:46:01 +00:00
Michael Bayne 713e76373b Allow the authenticator to slip some authentication data down the line to
the PresentsClient which can then use it to fill in things like access
control information for the user. We could use this to replace the
UserStash mechanism we use on Yohoho, but that works so I doubt I'll do
that. However, this is needed to do things the more elegant way on future
projects, like Game Gardens.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3374 542714f4-19e9-0310-aa3c-eee0fc999fb1
2005-03-02 03:08:23 +00:00
Michael Bayne a9720fd905 LGPLed the library. Hello world.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3099 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-08-27 02:21:06 +00:00
Michael Bayne a2ae7d499d Track more objects!
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3091 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-08-23 21:05:04 +00:00
Michael Bayne 32dee3cbaf 405 modified source files and 17,367 lines of diffs later we now enforce
more discipline when handling names in our code base. Any user entered
name should find its way into a Name object as soon as it comes out of a
text field or whatnot, and stay that way until it makes its way into a
text field or into a database record (for which String objects are vastly
simpler because of JORA magic).

Dear God, let me never again make a change this large for the rest of my
mortal life.

Unfortunately, this means we have to keep an eye out for funny business
pretty much everywhere. However, since we will absolutely want to test
market stalls and so forth on Azure, we'll have an opportunity to iron out
any funny business that might fall under the radar during our internal
testing.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2980 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-03-06 11:29:19 +00:00
Michael Bayne 461a72bd94 Mark each upstream message with a the time at which it was decoded from
incoming network data.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2959 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-02-21 00:51:02 +00:00
Michael Bayne 21c6dbfc48 Fixed up toString().
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2945 542714f4-19e9-0310-aa3c-eee0fc999fb1
2004-01-31 12:16:12 +00:00