ehouse
ba97f096dc
make css file for http interface configurable; fix bug where
...
connections arriving too close together would wind up with different
crefs (using new mutex).
2009-07-30 12:49:21 +00:00
ehouse
631bf4b179
write to named file for use on ISP from cron
2009-07-30 12:46:40 +00:00
ehouse
2641ab6430
bug fix: mark after locking so will unlock in destructor
2009-07-30 12:39:45 +00:00
ehouse
4a5d74a0af
rename state to take up less space in browser; add number of respawns
...
to status display.
2009-07-29 04:25:21 +00:00
ehouse
8be31357ad
track per-cref lifetime and display it via http
2009-07-28 05:41:15 +00:00
ehouse
8284799abe
Fix crashes resulting from deleting cref instances in one thread while
...
another wanted to operate on them. The root problem is that you can't
dispose of a mutex while somebody's blocking on it. So now the
locking mutexes live inside the cref class. When the lock owner
realizes the cref needs to die, it sets a flag and it's moved to a
recycled list. A thread blocking on the mutex will then get it, but
checks the flag and releases it immediately if it's being recycled.
(Also improve the http interface a bit.) With these changes I've run
31K (and counting) games against the relay without a crash or deadlock
(using sim_real.sh.) The main problem that remains is that sometimes
two games using the same cookie wind up with two crefs (and so never
connect.)
2009-07-28 05:15:26 +00:00
ehouse
0d03ed71bb
cleanup
2009-07-28 05:09:24 +00:00
ehouse
6b1cf247bf
Don't alloc storage for fds and log buffer each time through poll
...
loop; instead reuse and realloc when needs to grow.
2009-07-28 05:08:15 +00:00
ehouse
8c7c457a54
shorten state names so they take up less webpage space.
2009-07-28 05:06:25 +00:00
ehouse
3b62e04d07
don't use -lmcheck. It causes a lot of crashes in places where it
...
certainly looks as if nothing is wrong.
2009-07-28 05:00:18 +00:00
ehouse
dddd5e1dd8
clean up logging. I got some cores that suggest overflow. This fixes
...
that if indeed it was happening. Problems with sockets disappearing
while in poll may remain.
2009-07-16 04:43:33 +00:00
ehouse
0a0d4804dd
store keys and values as const char* instead of string since the
...
string code was involved in a lot of crashes.
2009-07-16 04:23:02 +00:00
ehouse
8a0d963c95
include abbreviated uptime in stat row
2009-07-16 02:56:25 +00:00
ehouse
c5e73fd725
Add to http display number of games currently being hosted.
2009-07-13 03:01:22 +00:00
ehouse
582eb88f9a
int->bool
2009-07-13 02:58:16 +00:00
ehouse
854b3d9349
use synchronized method to add map entries
2009-07-06 02:02:59 +00:00
ehouse
2ef16d44ca
Include number of games played in html output; don't report closed
...
sockets found while reporting closed sockets (to avoid deadlock);
remove sockets from crefmgr's map when closing them so new connections
using same (re-used) socket aren't treated as belonging to open games.
2009-07-06 01:50:51 +00:00
ehouse
a680a6e5fe
Always close sockets we're done with. Otherwise they leak -- don't get reused.
2009-07-06 01:32:30 +00:00
ehouse
37dc9b7b88
running under valgrind I need to handle SIGPIPE.
2009-07-06 01:31:16 +00:00
ehouse
f4db39f490
synchronize reads of std::map to fix crash due to memory corruption.
...
Apparently containers aren't thread-safe even for reads.
2009-07-03 14:54:21 +00:00
ehouse
9b29e45ea4
plug valgrind-found leak; prefer localtime_r.
2009-06-29 12:58:30 +00:00
ehouse
4a308f4f8e
Don't use unitialized variables (thanks valgrind :-)
2009-04-05 18:47:45 +00:00
ehouse
fbe95478ba
rename now() as uptime(); drop NTHREADS to 1 for now; include time of
...
server boot in connName and keep counter in memory rather than a file.
2009-03-10 12:52:17 +00:00
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