Commit graph

46 commits

Author SHA1 Message Date
ehouse
a0cb733125 Add an http interface (read-only web console). 2009-02-28 16:15:59 +00:00
ehouse
628b39ba65 detect duplicate initial connect packets by checking what socket they're on. 2009-02-07 18:17:17 +00:00
ehouse
3c16f9781d clean up event logging 2009-02-01 15:55:45 +00:00
ehouse
241d22262e start counter for uptime at launch 2008-12-31 04:19:23 +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
5581297d05 use sigaction rather than signal 2008-03-15 14:04:02 +00:00
ehouse
3013b89b03 Don't respawn if child died in less than a second. 2007-12-05 06:30:45 +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
c03afb2eb3 Exit on unexpected params; better testing when launching; use bash to create pid file. 2007-11-22 04:59:11 +00:00
ehouse
a91056bed2 Make cooperation in a heartbeat scheme a compile-time option. This is
meant to allow comms to take over heartbeats.
2007-11-18 23:38:56 +00:00
ehouse
938a90634f fix new compiler warnings; daemonize, and add handler to kill child if
parent dies so that script can kill based on pid file.
2007-11-13 03:53:10 +00:00
ehouse
f99f718997 Turn on self-spawning: main loop should never crash but exists only to
respawn child when it does.  Add crash command to test this.  Add
ability to set logging level from ctrl port.
2007-11-10 05:41:49 +00:00
ehouse
ad2acdf0b6 Print svn rev number as part of usage() 2007-02-07 11:56:30 +00:00
ehouse
8a94d0d6ef initialize mutex before using; fixes a hang since could never aquire
lock.  (This bug has always been there, but didn't matter before;
maybe pthreads changed.)  Comment out self-spawning stuff until can
fix df-transfer problems.  Other minor changes around logging.
2007-02-06 05:52:22 +00:00
ehouse
d5511d2ab3 include result of strerror in messages logging errno 2007-02-03 21:35:07 +00:00
ehouse
02833e4c17 Make self-restarting: fork child and wait (to deal with asserts). 2006-10-11 02:06:20 +00:00
ehouse
d27ae08529 handle cmdline opts in a less-fancy way that works on freebsd too. 2006-03-22 04:33:34 +00:00
ehouse
dcd31cd092 update email address in header comments: no code change 2006-01-08 01:25:02 +00:00
ehouse
ae4821d5f5 don't print log messages below a certain priority 2005-10-30 05:10:26 +00:00
ehouse
4bcc9ccbc5 make location of file storing next ID configurable. 2005-10-23 21:06:07 +00:00
ehouse
bdace2be94 shutdown in response to SIGINT 2005-10-23 15:49:48 +00:00
ehouse
8edf8a5382 make now() relative to relay startup time. 2005-10-19 03:43:21 +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
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
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
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
9c23a5c65e log ip address of incoming connection in dotted-quad notation. 2005-09-04 20:54:09 +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
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
11cf5b3a27 reduce interrupt-time logging 2005-08-03 01:17:49 +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
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
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
0b316408ae count bytes sent 2005-04-20 12:08:33 +00:00
ehouse
bf41f95f44 fix warnings 2005-04-08 14:28:04 +00:00
ehouse
863e241fc6 use new thread pool class 2005-03-30 01:42:28 +00:00
ehouse
7a6a5df437 use new stack-based lock 2005-03-25 03:21:16 +00:00
ehouse
d4edf4d446 don't kill socket when client connects before server 2005-03-21 05:30:55 +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
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