Commit graph

34 commits

Author SHA1 Message Date
ehouse
2bcac176e9 include stdio.h for freebsd 2006-03-21 04:05:33 +00:00
ehouse
dcd31cd092 update email address in header comments: no code change 2006-01-08 01:25:02 +00:00
ehouse
495fb9fa8b add _Shutdown(); override logf() to tag with cookieid; make logs less
verbose.
2005-10-30 05:20:31 +00:00
ehouse
7b04db43ae Set a disconn timer when somebody leaves to make it parallel with case
where somebody never shows up; print more info about cref state to
ctrl port.
2005-10-19 03:44:55 +00:00
ehouse
be6769a937 cleanup ctrl printing; repeat most recent command; cleanup internal names. 2005-10-16 01:19:25 +00:00
ehouse
9b0fb63a84 cancel all-connected timer when all are connected 2005-10-15 16:35:18 +00:00
ehouse
6d76de5eaf capitalize public methods on timermgr (no code change) 2005-10-15 15:49:22 +00:00
ehouse
1ae0f8c13e remove dead code 2005-10-06 02:54:05 +00:00
ehouse
bf1264b2ee rename states so can format to 80 cols; add log level param. No
change to functionality in this checkin.
2005-10-02 16:08:42 +00:00
ehouse
2b58da4cdf New scheme for accepting and limiting reconnections. Now device must
send player counts, local and expected.  Based on these the relay
accepts connections, declares the game full and ready for message
forwarding, and decides whether to accept a reconnect.
2005-10-02 15:39:38 +00:00
ehouse
e098e6f7b2 make transmitted vars smaller where possible; new relay identifying
scheme where cookie is used only to connect, and is replaced for
reconnects by a relay-generated name that's supposed to be unique
across all games on all relays and includes a hostname read in from
config file; relay assign non-servers' hostIDs.
2005-10-01 16:33:45 +00:00
ehouse
86c42c40c0 comment out internal mutexes: shouldn't be needed now that only one
thread at a time is given access to a cref instance.
2005-09-14 05:15:27 +00:00
ehouse
8ac4c21e9f event name change 2005-09-09 03:15:06 +00:00
ehouse
d9826ae275 Add and handle disconnect message so a device can reuse its socket for
a new game.
2005-09-05 15:50:49 +00:00
ehouse
bb8a1e7588 send notice when a socket closes. This seems to be resulting in dups. 2005-09-04 20:37:42 +00:00
ehouse
8e672b18bb generate XWRELAY_OTHERCONNECT message 2005-09-03 18:35:34 +00:00
ehouse
429bcfce0c when one device is disconnected for heartbeat, tell others it's going
away.
2005-09-03 15:41:17 +00:00
ehouse
9e53da6545 cleanup: get rid of unused states/actions and code to handle them. 2005-09-03 07:15:05 +00:00
ehouse
175f4eb87d Send disconnect events with error codes on heartbeat and connect timer
failures; change how state machine handles heartbeats: only put events
into the machine when there's a failure.
2005-09-03 06:55:08 +00:00
ehouse
3cd8397085 fix failure to record bytes forwarded 2005-09-02 07:18:39 +00:00
ehouse
da323ede86 loads of changes: get settings from config file; remove sockets and
kill crefs via state machine, and protect access to a cref so it can
die without another thread being in it; do timers via timeout to
poll() rather than interrupt (and integrate into state machine);
detect when all players are present and change state so new
connections on that cookie will get a new cref.
2005-09-02 06:56:34 +00:00
ehouse
684a0089d6 tweaks to logging and adding some message enums 2005-08-08 23:33:51 +00:00
ehouse
11cf5b3a27 reduce interrupt-time logging 2005-08-03 01:17:49 +00:00
ehouse
0b4214c82b fix bug where client connecting before server would result in attempt
to forward packet to host not yet available.  Drop such packets now.
2005-08-02 04:57:13 +00:00
ehouse
a26549afa9 Pass protocol version code with connect request, and return error if
it isn't what relay can handle.  Report error to user.
2005-07-06 01:36:52 +00:00
ehouse
4e3e67c7b2 Honor cookieID passed in connect message, falling back to cookie only
when the ID isn't set, and using it rather than assigning a new one
even if the game can't be found.
2005-07-06 00:54:38 +00:00
ehouse
93b78bc3f6 Make cookieID a 32-bit value instead of 16-bit 2005-07-05 23:02:15 +00:00
ehouse
711046f94b move to using a formal table-driven state machine for each game (cref
object).  While it makes things more complex at this point, it should
make it easier in the long run to add error handling, timeouts, etc.
2005-07-05 22:05:37 +00:00
ehouse
210dcc88c0 heartbeats: send to clients in connection response; note when
heartbeat and other messages arrive; and periodically reap sockets
that haven't been active in long enough.
2005-06-23 04:26:44 +00:00
ehouse
fc9a3716d9 lots of little changes; cleanup and support ctrl functions 2005-04-20 12:13:20 +00:00
ehouse
d783a5ba2e replace mutex with rwlock; move creation inside class so can be
controlled by same rwlock.
2005-04-08 14:15:23 +00:00
ehouse
f17a3bec58 add mutexes; general improvements 2005-03-25 02:59:44 +00:00
ehouse
95772d3ad1 remove null-dereference when socket closed by two threads 2005-03-21 05:30:12 +00:00
ehouse
8202b041b3 first checked in. primative, but works. 2005-03-19 22:14:27 +00:00