Commit graph

75 commits

Author SHA1 Message Date
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
1afdfa3732 fix print_cookies to use iterator 2005-09-14 05:14:41 +00:00
ehouse
6a6e0f3e13 shorten names so table easier to fit in 80 cols 2005-09-14 05:14:04 +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
709108f8c3 Do nothing rather than assert when socket no longer found for write.
Not sure if this is a preventable error.
2005-09-05 15:50:28 +00:00
ehouse
912859be39 Don't close the underlying socket. Not sure yet when I should close a
socket that hasn't returned an error.  Maybe that's the client's job.
2005-09-05 15:45:22 +00:00
ehouse
7bc8d22739 move typedef 2005-09-04 20:55:07 +00:00
ehouse
9c23a5c65e log ip address of incoming connection in dotted-quad notation. 2005-09-04 20:54:09 +00:00
ehouse
8821815fb5 log tweak 2005-09-04 20:44:46 +00:00
ehouse
5d2b45a90f cut down on logging a bit 2005-09-04 20:43:53 +00:00
ehouse
ccdec2210b don't assert when unexpected event arrives; just log and drop 2005-09-04 20:43:23 +00:00
ehouse
fcff7066e9 shorten log messages; make easier to process from perl 2005-09-04 20:38:23 +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
38764b3f73 fix deadlock by collecting crefs into local storage before starting to
act on them.
2005-09-04 20:36:53 +00:00
ehouse
c6e9a747b8 new error code 2005-09-04 14:35:13 +00:00
ehouse
8e672b18bb generate XWRELAY_OTHERCONNECT message 2005-09-03 18:35:34 +00:00
ehouse
481febe807 add XWRELAY_OTHERCONNECT message 2005-09-03 18:32:12 +00:00
ehouse
117f22d374 make all APIs private and add as friends the safe classes that will
access them.  This should allow reduction in the locking within cref
instances since only one thread at a time will be permitted inside by
SafeCref.
2005-09-03 15:59:48 +00:00
ehouse
56454d734b add missing state transition 2005-09-03 15:41:59 +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
497b589558 add disconnect event and error codes 2005-09-03 06:46:03 +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
45a5853529 initial version 2005-09-02 06:40:34 +00:00
ehouse
048c2ffc6d first checked in. works. 2005-09-02 06:35:25 +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
051108e14e make overly verbose logging conditional 2005-08-02 04:56:08 +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
326a639ea5 cleanup 2005-07-06 00:53:19 +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
19668620fd add include file 2005-07-05 21:57:00 +00:00
ehouse
db5b2f843d fix leak 2005-07-05 21:52:24 +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
2c37dc2366 log incoming ip addr 2005-05-01 17:38:11 +00:00
ehouse
fc9a3716d9 lots of little changes; cleanup and support ctrl functions 2005-04-20 12:13:20 +00:00
ehouse
af7a820bb8 reorganize; support ctrl functions 2005-04-20 12:10:05 +00:00
ehouse
0b316408ae count bytes sent 2005-04-20 12:08:33 +00:00
ehouse
7723fa5e19 use rwlock instead of mutex 2005-04-20 12:06:25 +00:00
ehouse
176e2bf68d move to using rwlock 2005-04-20 12:03:58 +00:00
ehouse
f625557cd9 more debug info 2005-04-20 11:59:08 +00:00
ehouse
9e572d1743 add several new commands 2005-04-20 11:57:26 +00:00
ehouse
bf41f95f44 fix warnings 2005-04-08 14:28:04 +00:00
ehouse
6a5b03f1aa add rwlock helper classes 2005-04-08 14:18:14 +00:00