ehouse
6ba2032187
clean up event logging
2009-02-01 15:55:45 +00:00
ehouse
1c3be799b7
start counter for uptime at launch
2008-12-31 04:19:23 +00:00
ehouse
ea6fff8f28
replace int with bool where appropriate; fix to compile with newer g++
2008-12-30 05:13:30 +00:00
ehouse
4beb818de3
use sigaction rather than signal
2008-03-15 14:04:02 +00:00
ehouse
acc7b5be52
Don't respawn if child died in less than a second.
2007-12-05 06:30:45 +00:00
ehouse
25c4368231
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
022317b47a
Exit on unexpected params; better testing when launching; use bash to create pid file.
2007-11-22 04:59:11 +00:00
ehouse
cb1222c0f9
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
8dbfe4ed79
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
0291ec1e75
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
a8d3dbda66
Print svn rev number as part of usage()
2007-02-07 11:56:30 +00:00
ehouse
767b9f2908
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
4c2259400a
include result of strerror in messages logging errno
2007-02-03 21:35:07 +00:00
ehouse
d123d6c352
Make self-restarting: fork child and wait (to deal with asserts).
2006-10-11 02:06:20 +00:00
ehouse
3da83805cc
handle cmdline opts in a less-fancy way that works on freebsd too.
2006-03-22 04:33:34 +00:00
ehouse
92485783af
update email address in header comments: no code change
2006-01-08 01:25:02 +00:00
ehouse
42f3a4e7cf
don't print log messages below a certain priority
2005-10-30 05:10:26 +00:00
ehouse
b135f317b4
make location of file storing next ID configurable.
2005-10-23 21:06:07 +00:00
ehouse
deb0a2d265
shutdown in response to SIGINT
2005-10-23 15:49:48 +00:00
ehouse
80d0f3ce71
make now() relative to relay startup time.
2005-10-19 03:43:21 +00:00
ehouse
a8352fa745
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
ecf5875d7e
capitalize public methods on timermgr (no code change)
2005-10-15 15:49:22 +00:00
ehouse
eb8301ade7
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
4e5f69f4e8
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
6835b6d1eb
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
77319b570d
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
cf5906eacf
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
8a2eae0887
log ip address of incoming connection in dotted-quad notation.
2005-09-04 20:54:09 +00:00
ehouse
c82fd2e4f2
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
8f32f4f99a
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
23739eee9b
reduce interrupt-time logging
2005-08-03 01:17:49 +00:00
ehouse
3b53363e16
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
f062a1f8f6
cleanup
2005-07-06 00:53:19 +00:00
ehouse
1ae6c010c9
Make cookieID a 32-bit value instead of 16-bit
2005-07-05 23:02:15 +00:00
ehouse
db6f6c258d
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
3054637842
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
f702a75188
log incoming ip addr
2005-05-01 17:38:11 +00:00
ehouse
d885af5386
count bytes sent
2005-04-20 12:08:33 +00:00
ehouse
54843e68bf
fix warnings
2005-04-08 14:28:04 +00:00
ehouse
855bc67b17
use new thread pool class
2005-03-30 01:42:28 +00:00
ehouse
97323636a9
use new stack-based lock
2005-03-25 03:21:16 +00:00
ehouse
8b34f57bf9
don't kill socket when client connects before server
2005-03-21 05:30:55 +00:00
ehouse
50d8c1067b
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
39225c8622
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