Commit graph

194 commits

Author SHA1 Message Date
ehouse
1b49a26736 do loglevel and ports via the general-purpose config mech. No special
cases remain.
2009-03-05 13:49:01 +00:00
ehouse
3469dc7bf3 Make refresh interval configurable. 2009-03-02 05:29:06 +00:00
ehouse
6b3265ac47 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
9a8abb770d in web console list hosts present rather than just the count 2009-02-28 19:35:32 +00:00
ehouse
3bf116c936 Add an http interface (read-only web console). 2009-02-28 16:15:59 +00:00
ehouse
03c806e961 add tarball target to help 2009-02-21 17:15:09 +00:00
ehouse
644dc3b5ad detect duplicate initial connect packets by checking what socket they're on. 2009-02-07 18:17:17 +00:00
ehouse
53b27c96c9 Helps to compile platforms too before checking in... 2009-02-01 16:20:18 +00:00
ehouse
1ac4ef3bc6 Attempt to detect connections that are duplicates by checking if that
socket is already in a connection.  This doesn't seem to always work,
and I may be leaking cref instances when it does, so needs debugging
still.
2009-02-01 16:00:20 +00:00
ehouse
6ba2032187 clean up event logging 2009-02-01 15:55:45 +00:00
ehouse
552f6350f9 tweaks to stop/start script to run on an ISP's server better 2008-12-31 04:26:37 +00:00
ehouse
c53fe0857c Don't parse the same conf file twice in a row. 2008-12-31 04:21:03 +00:00
ehouse
1c3be799b7 start counter for uptime at launch 2008-12-31 04:19:23 +00:00
ehouse
9fc325a334 include new file in tarball 2008-12-31 04:16:55 +00:00
ehouse
32121c5634 include svnversion output in tarball 2008-12-30 05:17:00 +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
4c191e0755 Don't specify g++ version; add some consts to fix warnings with newer g++. 2008-05-21 03:49:11 +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
da93ed5b31 Don't use uninitialized values as port numbers; use match for set as well as get. 2007-12-03 00:45:09 +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
74a30ffe82 init.d style script for starting and stopping relay 2007-11-13 03:50:41 +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
9f23c4b4d9 Replace ints with bools; add rev command; fix bug by reiniting args with each
command so they don't hold previous values.
2007-02-07 13:22:40 +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
5fbc89ae76 add tarball target for exporting enough code to build relay. 2007-02-04 01:22:31 +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
a8463b9341 link pthreads in a way that works on freebsd too 2006-03-22 04:31:27 +00:00
ehouse
b29bde8e37 include stdio.h for freebsd 2006-03-21 04:05:33 +00:00
ehouse
96d6623026 include pthread.h for freebsd 2006-03-21 04:04:43 +00:00
ehouse
92485783af update email address in header comments: no code change 2006-01-08 01:25:02 +00:00
ehouse
92981942b3 add _Shutdown(); override logf() to tag with cookieid; make logs less
verbose.
2005-10-30 05:20:31 +00:00
ehouse
b31cb6612b call shutdown on cref rather than deleting it; wrap mutex actions with
debugging logfs like those in mlock.h.
2005-10-30 05:16:35 +00:00
ehouse
42f3a4e7cf don't print log messages below a certain priority 2005-10-30 05:10:26 +00:00
ehouse
befc90648e add shutdown event and action 2005-10-30 05:07:58 +00:00
ehouse
6d88725e05 add missing header file 2005-10-28 09:20:51 +00:00
ehouse
d17165a678 add header needed on some installations 2005-10-23 21:35:19 +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
e2e66f8057 Set a disconn timer when somebody leaves to make it parallel with case
where somebody never shows up; print more info about cref state to
ctrl port.
2005-10-19 03:44:55 +00:00
ehouse
80d0f3ce71 make now() relative to relay startup time. 2005-10-19 03:43:21 +00:00
ehouse
a64cbd472a don't track heartbeat independent of any timers set. This allows
infinite timeout when no devices present.
2005-10-19 03:42:17 +00:00
ehouse
d74de11771 add XWS_ANY 2005-10-19 03:40:40 +00:00
ehouse
e05777bdcf 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
4df7b3d75a add uptime 2005-10-19 03:39:18 +00:00
ehouse
74b6ccbd52 cleanup ctrl printing; repeat most recent command; cleanup internal names. 2005-10-16 01:19:25 +00:00
ehouse
deea73ad8b cancel all-connected timer when all are connected 2005-10-15 16:35:18 +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
936e3bd110 clean up command help 2005-10-15 16:28:26 +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
6541e56c40 catch up with logf change 2005-10-14 08:27:16 +00:00
ehouse
b7e3479989 print prompt 2005-10-14 08:26:56 +00:00
ehouse
cb3e2910b9 add commented out debug flag 2005-10-14 08:26:19 +00:00
ehouse
e18f66f587 remove dead code 2005-10-06 02:54:05 +00:00
ehouse
be5078e8f8 removed unused states etc. 2005-10-06 02:36:45 +00:00
ehouse
f7443c9f7f 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
3bf3e2fda1 parse multiple config files in order with later ones overriding. 2005-10-02 16:23:49 +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
0c2365e3ea parse new SERVERNAME config variable 2005-10-01 16:09:57 +00:00
ehouse
255656f009 works, but not yet used. And wants relay host identifier added in. 2005-09-19 04:34:51 +00:00
ehouse
7d9a78f996 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
f944b154fc fix print_cookies to use iterator 2005-09-14 05:14:41 +00:00
ehouse
c4d212f78c shorten names so table easier to fit in 80 cols 2005-09-14 05:14:04 +00:00
ehouse
87d1c8f593 event name change 2005-09-09 03:15:06 +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
05878f11a4 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
235556240f 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
47030320f4 move typedef 2005-09-04 20:55:07 +00:00
ehouse
8a2eae0887 log ip address of incoming connection in dotted-quad notation. 2005-09-04 20:54:09 +00:00
ehouse
89f1eca340 log tweak 2005-09-04 20:44:46 +00:00
ehouse
55988dcdd7 cut down on logging a bit 2005-09-04 20:43:53 +00:00
ehouse
6995d37ead don't assert when unexpected event arrives; just log and drop 2005-09-04 20:43:23 +00:00
ehouse
aa1323a5a3 shorten log messages; make easier to process from perl 2005-09-04 20:38:23 +00:00
ehouse
ebcc30dd5f send notice when a socket closes. This seems to be resulting in dups. 2005-09-04 20:37:42 +00:00
ehouse
0134c96962 fix deadlock by collecting crefs into local storage before starting to
act on them.
2005-09-04 20:36:53 +00:00
ehouse
1f43831219 new error code 2005-09-04 14:35:13 +00:00
ehouse
4882c92a07 generate XWRELAY_OTHERCONNECT message 2005-09-03 18:35:34 +00:00
ehouse
8072bc687c add XWRELAY_OTHERCONNECT message 2005-09-03 18:32:12 +00:00
ehouse
e6e9646253 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
4479933657 add missing state transition 2005-09-03 15:41:59 +00:00
ehouse
a4033a44c3 when one device is disconnected for heartbeat, tell others it's going
away.
2005-09-03 15:41:17 +00:00
ehouse
9a2567252b cleanup: get rid of unused states/actions and code to handle them. 2005-09-03 07:15:05 +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
b0cc6f458b add disconnect event and error codes 2005-09-03 06:46:03 +00:00
ehouse
2ba0f451a7 fix failure to record bytes forwarded 2005-09-02 07:18:39 +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
5d22be174a initial version 2005-09-02 06:40:34 +00:00
ehouse
9ac04243b5 first checked in. works. 2005-09-02 06:35:25 +00:00
ehouse
abde767154 tweaks to logging and adding some message enums 2005-08-08 23:33:51 +00:00
ehouse
23739eee9b reduce interrupt-time logging 2005-08-03 01:17:49 +00:00
ehouse
91abdb3bcc 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