ehouse
3f74c4ae86
add XWS_ANY; add missing transitions to kill game on timer when device
...
disappears and doesn't return.
2005-10-19 03:40:26 +00:00
ehouse
e72740d184
add uptime
2005-10-19 03:39:18 +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
2a0bc3c2de
fix leak; move heartbeat timer into crefmgr, and only run it when
...
there are active crefs.
2005-10-15 16:30:10 +00:00
ehouse
1ad46f9b33
clean up command help
2005-10-15 16:28:26 +00:00
ehouse
6d76de5eaf
capitalize public methods on timermgr (no code change)
2005-10-15 15:49:22 +00:00
ehouse
1ba992073b
return error to client when flags indicate old version; close sockets
...
when error occurs in processing message.
2005-10-14 08:29:58 +00:00
ehouse
235dd25d09
catch up with logf change
2005-10-14 08:27:16 +00:00
ehouse
4f8626735a
print prompt
2005-10-14 08:26:56 +00:00
ehouse
fb687c5191
add commented out debug flag
2005-10-14 08:26:19 +00:00
ehouse
1ae0f8c13e
remove dead code
2005-10-06 02:54:05 +00:00
ehouse
eca975429b
removed unused states etc.
2005-10-06 02:36:45 +00:00
ehouse
42a042a289
catch symbian up with api changes -- but still need to set timers
...
before it'll talk to relay.
2005-10-02 16:40:16 +00:00
ehouse
bd808bba79
parse multiple config files in order with later ones overriding.
2005-10-02 16:23:49 +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
c954361d3b
parse new SERVERNAME config variable
2005-10-01 16:09:57 +00:00
ehouse
4e38b864d2
works, but not yet used. And wants relay host identifier added in.
2005-09-19 04:34:51 +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
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
ehouse
37062d4ab6
mutex replaced by rwlock
2005-04-08 14:17:28 +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
a9c3bac6df
move creation inside class so can be controlled by same rwlock
2005-04-08 14:13:25 +00:00
ehouse
26ebce5853
turn on warnings
2005-04-08 14:11:00 +00:00
ehouse
97b0998eaf
don't assert after poll returns! Instead close socket on hangup.
2005-04-03 17:02:09 +00:00
ehouse
6baa887b77
add command parsing and dispatch table
2005-03-31 02:20:50 +00:00
ehouse
c1c224cdae
first checked in. works but not robust
2005-03-31 02:11:51 +00:00
ehouse
c41dc77934
break up compile; new file
2005-03-30 02:00:15 +00:00
ehouse
bf6837a9d0
this file owns thread creation now
2005-03-30 01:52:10 +00:00
ehouse
5582b5be2c
new include
2005-03-30 01:49:40 +00:00
ehouse
7bafdf8e5a
first checked in
2005-03-30 01:47:55 +00:00
ehouse
863e241fc6
use new thread pool class
2005-03-30 01:42:28 +00:00
ehouse
12795788ea
cleanup
2005-03-30 01:32:02 +00:00
ehouse
1ec9e7b851
add cmd to lock/unlock main mutex
2005-03-25 03:24:00 +00:00
ehouse
7a6a5df437
use new stack-based lock
2005-03-25 03:21:16 +00:00
ehouse
f17a3bec58
add mutexes; general improvements
2005-03-25 02:59:44 +00:00
ehouse
9fb0b2691d
first checked in
2005-03-25 02:59:10 +00:00
ehouse
d4edf4d446
don't kill socket when client connects before server
2005-03-21 05:30:55 +00:00
ehouse
95772d3ad1
remove null-dereference when socket closed by two threads
2005-03-21 05:30:12 +00:00
ehouse
12b0c74790
first checked in.
2005-03-19 22:16:49 +00:00
ehouse
8202b041b3
first checked in. primative, but works.
2005-03-19 22:14:27 +00:00
ehouse
5d3876fa7b
total rewrite. New protocol eliminates need to store and forward
...
messages: clients connect, then messages are passthru only. Add
control port. Use stl map and vector to remove limit on number of
connections. Also removed synchronization, which need to be re-added.
2005-03-19 22:13:43 +00:00
ehouse
02588f6244
add two new .cpp files
2005-03-19 22:09:03 +00:00
ehouse
131498728c
first checked in
2005-03-06 18:30:59 +00:00
ehouse
2f8efe7a6a
first checkin. Works about half the time for one or two games at a
...
time. Very fragile.
2005-03-06 18:27:16 +00:00