ehouse
54693142bd
Change config class from having a method for every configurable value
...
to returing values for string keys so adding a new config doesn't mean
modifying that class. Then add new config for addr passed to bind so
relay can be run to accept http connections from remote machines.
2009-03-02 01:50:14 +00:00
ehouse
f312f8fdb3
in web console list hosts present rather than just the count
2009-02-28 19:35:32 +00:00
ehouse
a0cb733125
Add an http interface (read-only web console).
2009-02-28 16:15:59 +00:00
ehouse
1d4c68d8d2
replace int with bool where appropriate; fix to compile with newer g++
2008-12-30 05:13:30 +00:00
ehouse
c10a3a7340
Start adding ability to listen on multiple sockets and to dynamically
...
change the set listened on. There's still some debugging to do but
nothing that worked before is broken. Also begin to accept unique
prefixes (e.g. g for get) for commands and attributes on the control
port. Note that relay-related code in comms seems broken now, but is
without this checkin.
2007-12-01 15:00:30 +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
be6769a937
cleanup ctrl printing; repeat most recent command; cleanup internal names.
2005-10-16 01:19:25 +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
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
8e672b18bb
generate XWRELAY_OTHERCONNECT message
2005-09-03 18:35:34 +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
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
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
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
af7a820bb8
reorganize; support ctrl functions
2005-04-20 12:10:05 +00:00
ehouse
a9c3bac6df
move creation inside class so can be controlled by same rwlock
2005-04-08 14:13:25 +00:00
ehouse
f17a3bec58
add mutexes; general improvements
2005-03-25 02:59:44 +00:00
ehouse
8202b041b3
first checked in. primative, but works.
2005-03-19 22:14:27 +00:00