Commit graph

1371 commits

Author SHA1 Message Date
ehouse
3676a8b55f need to set flag before making calls that will result in a stream of
messages.
2005-11-27 22:24:25 +00:00
ehouse
cab0622c9d Increase size of tray and fonts for win32; turn on windoze-style
menus.
2005-11-27 22:06:04 +00:00
ehouse
a79052513e Turn off STUBBED_DICT -- can now load and execute from an .xwd file
running on WINE.
2005-11-27 21:39:06 +00:00
ehouse
870af10a63 first checked in. Builds for Win32, but crashes on XP after drawing
its board.
2005-11-27 20:27:46 +00:00
ehouse
24cf6bda2f hide new obj dirs 2005-11-27 20:17:39 +00:00
ehouse
33779bf1b3 changes for gcc compilation: conditionally define out stuff that
doesn't work on win32 (e.g. CommandBar).
2005-11-27 20:17:09 +00:00
ehouse
92948425b9 changes for gcc compilation: fix syntax errors and API usage,
conditionally define out stuff that doesn't work on win32
(e.g. CommandBar).
2005-11-27 20:16:43 +00:00
ehouse
66fffb7fe9 fix for STUBBED_DICT case 2005-11-27 20:13:42 +00:00
ehouse
aba81b8627 OpenFileForMapping doesn't seem to exist in win32 -- or at least not
in MinGW's view.
2005-11-27 20:13:13 +00:00
ehouse
65611289fd for gcc: fix caps and remove commas after last item in array 2005-11-27 20:10:06 +00:00
ehouse
7c26e79dda fix caps; use rand() on win32 2005-11-27 20:09:15 +00:00
ehouse
b9de2acebf change how struct is defined for gcc 2005-11-27 20:06:36 +00:00
ehouse
b462252ebb fix syntax errors; other catch up with changes 2005-11-27 20:05:33 +00:00
ehouse
f228cc3b46 fix syntax error 2005-11-27 20:04:46 +00:00
ehouse
e8e408afd4 fix capitalization of header file -- which gcc cares about. 2005-11-27 20:04:06 +00:00
ehouse
5e6eca025a fix so hex dicts build again 2005-10-30 19:05:40 +00:00
ehouse
fb8d643ea2 replace sed with awk 2005-10-30 19:04:49 +00:00
ehouse
768cfd597a fix bug truncating tray display in history by adding size param to
formatTray()
2005-10-30 18:35:21 +00:00
ehouse
95005e45eb don't connect to relay unless have something to send 2005-10-30 16:28:52 +00:00
ehouse
cda5996195 fix unset var warning 2005-10-30 16:14:13 +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
d29937a734 add a const 2005-10-30 05:06:41 +00:00
ehouse
a422f21ad5 add error message; cast to avoid compile warnings 2005-10-30 05:06:23 +00:00
ehouse
880b626070 add a few consts 2005-10-30 05:05:45 +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
5e693ee022 fix misspelling; tweak error messages 2005-10-19 03:21:19 +00:00
ehouse
74b6ccbd52 cleanup ctrl printing; repeat most recent command; cleanup internal names. 2005-10-16 01:19:25 +00:00
ehouse
ff12881ffd silence compiler warning 2005-10-16 01:15:49 +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
8c8babc762 new error message 2005-10-14 08:25:51 +00:00
ehouse
e18f66f587 remove dead code 2005-10-06 02:54:05 +00:00
ehouse
07a1894c6e implement heartbeat timer required for relay 2005-10-06 02:49:50 +00:00
ehouse
be5078e8f8 removed unused states etc. 2005-10-06 02:36:45 +00:00
ehouse
0bf1dcdcf8 remove connect info button, instead bring it up every time role
changes to one that needs it.
2005-10-06 02:34:07 +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
c5add889cb 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; let relay assign non-servers' hostIDs
rather than doing 'em randomly; use hostIDs for comms-level protocol's
channelNo where possible to avoid tripping over duplicate messages
2005-10-01 16:01:39 +00:00
ehouse
50df4d7cf4 catch up with API change 2005-10-01 15:53:56 +00:00
ehouse
3db9c4e7e9 new constant 2005-10-01 15:52:16 +00:00
ehouse
b6933b5b9b stream version change 2005-10-01 15:51:54 +00:00
ehouse
c71b442229 comment on shuffling 2005-10-01 15:51:35 +00:00
ehouse
20c87b4c19 fix streaming so four devices can be in game. 2005-10-01 15:51:14 +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
57ccb08528 fix for when BEYOND_IR not defined 2005-09-17 19:49:53 +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
ca755490c5 allow to run multiple games at once 2005-09-14 05:12:07 +00:00
ehouse
237deee542 just log some messages so user interaction not required. 2005-09-14 05:11:29 +00:00
ehouse
87d1c8f593 event name change 2005-09-09 03:15:06 +00:00
ehouse
5dace1cc7a add enough timer support for heartbeat; fix redraw bug 2005-09-09 03:14:11 +00:00
ehouse
18fc5e2c14 add linuxFireTimer 2005-09-09 03:12:58 +00:00
ehouse
264f34d97d move fireTimer to linux-common code 2005-09-09 03:12:24 +00:00
ehouse
368d2b82d6 add an extra slot as on other platforms 2005-09-09 03:06:27 +00:00
ehouse
763cd70632 add missing header. (Did gtk change?) 2005-09-09 02:57:14 +00:00
ehouse
23c436a75c make network play on by default 2005-09-07 12:32:29 +00:00
ehouse
77a8df77ac add strings for relay errors 2005-09-07 12:31:32 +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
5c01044e8c send disconnect message to relay before starting a new game. 2005-09-05 15:33:51 +00:00
ehouse
466e21f608 formatting 2005-09-05 15:32:40 +00:00
ehouse
5e4fd3368e add role to newgame dialog 2005-09-05 05:31:11 +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
7803fead80 use comms_setAddr rather than modifying const to set resolved address. 2005-09-04 20:34:52 +00:00
ehouse
75b8f5342a add error messages 2005-09-04 20:34:16 +00:00
ehouse
6d0b23a8e8 TALL_FONTS (support for Danish tall letters) now on by default 2005-09-04 20:32:16 +00:00
ehouse
aa0a9ec158 add error message; don't assert (crash) when socket closes. 2005-09-04 20:31:34 +00:00
ehouse
6f8b33a05b reset cookieID for a new game 2005-09-04 20:30:47 +00:00
ehouse
1f43831219 new error code 2005-09-04 14:35:13 +00:00
ehouse
1aed9882ef new (commented-out) info message 2005-09-03 18:36:08 +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
59edec4955 handle OTHER_CONNECT message by resending any unACKed messages. 2005-09-03 18:31:32 +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
ca8877a5de for testing, add -H option to prevent client from sending heartbeat
messages to relay.
2005-09-03 15:39:15 +00:00
ehouse
abbd1a072f handle other-disconnected error message 2005-09-03 15:37:49 +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
1114784217 Add strings for error codes for relay disconnect events. 2005-09-03 06:58:05 +00:00
ehouse
ab0e833a9b Receive disconnect events and display message for error codes. 2005-09-03 06:57:01 +00:00
ehouse
6a0abc16e8 Add range for relay errors. 2005-09-03 06:56:33 +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
39fa5728ef send XWRELAY_RECONNECT 2005-09-02 06:26:33 +00:00
ehouse
e3cadfbf79 catch up with API changes 2005-09-02 06:24:47 +00:00
ehouse
6ebce9ff5e protect logging with mutex since happens from multiple threads now. 2005-08-21 14:54:49 +00:00
ehouse
a227dfd605 flesh out interaction with comms. Now able to play a complete game vs
linux version over GPRS.
2005-08-21 14:36:11 +00:00
ehouse
bef309be3f add stream_setOnCloseProc 2005-08-21 14:33:38 +00:00
ehouse
c0bdfb54c9 constant name changed 2005-08-21 14:18:56 +00:00
ehouse
a236d6a972 tweak how timers stored 2005-08-21 14:07:29 +00:00
ehouse
13d9e7e8c8 timeout isn't an assertion failure 2005-08-21 14:07:12 +00:00
ehouse
f77a4854b6 use renamed constant 2005-08-21 14:05:29 +00:00
ehouse
e8a94b670a rename constant 2005-08-21 14:04:32 +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
ae91d38e45 Clean up and fix timer code. 2005-08-03 01:14: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
ehouse
170ad8f419 make overly verbose logging conditional 2005-08-02 04:56:08 +00:00
ehouse
1b40b1956e add const to match new signature 2005-07-30 02:44:42 +00:00
ehouse
dcb5783924 add vc60.pdb 2005-07-30 02:07:20 +00:00
ehouse
f6649e17f6 make some conn-related IDs conditional 2005-07-30 02:05:59 +00:00
ehouse
7d4700622e add cesockwr.o 2005-07-30 02:04:29 +00:00
ehouse
294ce5f513 Add and use driver for communication over TCP. Driver uses two
threads, reader and writer, on a single socket.  With this checkin a
connect request reaches the relay and a response comes back and is
passed to and recognized by the common code.  A full game should now
work, but hasn't been tried.  Nor is there any handling of socket
errors, retries, etc.
2005-07-30 02:02:49 +00:00
ehouse
aa27360761 tweak conn dialog 2005-07-30 01:51:24 +00:00
ehouse
9abf6f8970 add a const 2005-07-30 01:48:17 +00:00
ehouse
3ecc871515 begin work of allowing multi-device play over WiFi/Cellular: add
dialog to gather params, save 'em, and stub out send proc.  Still need
to debug a bit, and add threads to send/receive packets.
2005-07-23 15:31:21 +00:00
ehouse
24fb48008f cleanup for wince compile 2005-07-23 15:28:15 +00:00
ehouse
77d7bc9fa7 add const 2005-07-23 15:21:23 +00:00
ehouse
d6fac2014e add assertion on null string 2005-07-23 15:16:26 +00:00
ehouse
bc3515272c Get rid of unused param 2005-07-14 02:54:47 +00:00
ehouse
84ec7e38f2 Get rid of WinCopyRect-based method of drawing letters and values in
tray tiles, since it seems not to work on all versions of PalmOS.
Simply drawing seems fine where tested; will try close clipping if
erasure happens elsewhere.  Draw board-top stuff one pixel higher on
highres devices, and fix scoreboard being too narrow on high-res
devices.
2005-07-14 02:45:10 +00:00
ehouse
fc4fd3ea93 fix compile error 2005-07-13 12:35:38 +00:00
ehouse
3b12c4df87 syntax error 2005-07-09 15:36:39 +00:00
ehouse
8acfb31153 protect TIMER_HEARTBEAT for standalone platforms 2005-07-09 15:27:06 +00:00