Commit graph

2590 commits

Author SHA1 Message Date
ehouse
6c4b991566 Modify comms and games APIs so single struct of callbacks is passed
instead of multiple callbacks; add callback called when relay state
changes; adapt linux and palm clients to new API.  (Wince changes
pending.)
2009-09-12 21:39:13 +00:00
ehouse
86b560c441 fix to compile on palm: accomodate old compiler and new dict struct
fields.  Network play against relay works!
2009-09-12 15:35:03 +00:00
ehouse
f1e27d4945 Don't bother calculating gameID as common code does it. 2009-09-12 15:10:10 +00:00
ehouse
85f9ac8598 revert to iso_8859-2 until have time to figure out why utf-8 doesn't
convert correctly (though it does for Polish)
2009-09-12 15:05:26 +00:00
ehouse
f0737e1356 prevent label overlap 2009-09-12 04:23:53 +00:00
ehouse
d0127c503a fix some allcaps; mark what needs tranlation. 2009-09-11 07:49:19 +00:00
ehouse
35449825bc Add new error string; convert to utf-8. 2009-09-11 07:45:14 +00:00
ehouse
2f0ec7e583 fix some string display bugs by using utf8 when converting; handle
Resend Messages menuitem (with error when standalone); add string for
that new error.
2009-09-11 07:44:27 +00:00
ehouse
df9b7bea2b More translations. 2009-09-11 07:05:31 +00:00
ehouse
448ea05443 Start adding logging to sockets code... 2009-09-07 18:23:49 +00:00
ehouse
03eeb93925 Prefs file is created HIDDEN; open it that way too. 2009-09-07 18:22:52 +00:00
ehouse
4e8d340304 Don't re-open conns dlg if in standalone mode 2009-09-07 16:55:54 +00:00
ehouse
13e50dd149 when only one conn mode available localized versions shouldn't show
choice either
2009-09-07 16:46:55 +00:00
ehouse
e8825e119c add comment re: stream format non-change for utf-8 2009-09-05 13:14:42 +00:00
ehouse
615603b66b Add define set to number of conn types compiled in; use it to compile
out conn type choice where there's only one (none to be made).  Refuse
to dismiss conns dialog when cookie not chosen.
2009-09-05 13:08:46 +00:00
ehouse
8ddc8612a8 experimental CC def should not have been checked in 2009-09-05 13:00:35 +00:00
ehouse
044c38e02f change formatting, variable name 2009-09-04 12:32:16 +00:00
ehouse
1c865eb2cc static linking for recent cegcc; don't ask mingw windres to do utf8 2009-09-04 12:31:15 +00:00
ehouse
3a1c2572dd Merge in unicode changes to read in utf-8 dictionary format 2009-09-04 12:30:10 +00:00
ehouse
c010a73098 copy over tall-narrow game info dialog layout from other .rc files 2009-09-04 12:18:46 +00:00
ehouse
7ca629a2f5 don't log socket closing as an error 2009-09-04 11:02:09 +00:00
ehouse
8acbe2c08f Don't sort tiles in blank picker! 2009-09-01 13:59:45 +00:00
ehouse
f72a8a5904 updates from translator 2009-09-01 12:41:56 +00:00
ehouse
188eea4646 Try again if fail to connect to relay. 2009-08-30 15:25:13 +00:00
ehouse
6827ab5d88 Unify signal handlers that do same thing; clean memory leaks and a
double-dispose.
2009-08-30 15:23:05 +00:00
ehouse
dd666472a3 Fix compiler warning in non-debug case. 2009-08-30 15:20:18 +00:00
ehouse
95a70862be Lock cref before calling method that assumes lock. 2009-08-30 15:18:40 +00:00
ehouse
2a569df97f For privacy, don't show host IP unless connection is local. 2009-08-30 15:16:06 +00:00
ehouse
1d2bd69251 Some fixup, e.g. missing or duplicated IDs, left from merge. 2009-08-29 16:10:56 +00:00
ehouse
1c8147c21c Tweak to support non-ascii utf-8 chars from dicts. Seems to display
Catalan and Polish fine (on board.)
2009-08-29 16:09:58 +00:00
ehouse
d86d2b556a Tweak to support non-ascii utf-8 chars from dicts. Seems to display
Catalan and Polish fine (on board.)
2009-08-29 16:09:24 +00:00
ehouse
9ae95366eb merge in changes from 2546 to current HEAD on wince_42_branch to catch up with localizability. Tested only on win32 so far, where can switch locales and play via relay 2009-08-29 13:37:37 +00:00
ehouse
6a36c045b6 fix wince compile error 2009-08-29 13:06:48 +00:00
ehouse
d29b048504 timeout games after five minutes no matter what 2009-08-23 15:35:47 +00:00
ehouse
b15665e041 serve http view from cached data and make cache refresh rate
configurable.  Should make it harder to attack the relay on http port.
2009-08-21 12:32:57 +00:00
ehouse
537de614b9 remove timer assert; log socket errors 2009-08-21 12:15:40 +00:00
ehouse
dbf9daf71b Fix problems reconnecting hosts where some but not all received the
ALLHERE message and connName: change relay protocol so cookie is
included in RECONNECT message, and hostIDs are not assigned until
ALLHERE, and change host-to-game matching to use connName first but
fall back to cookie.  This fixes nearly all cases failing to reconnect
after relay goes down.
2009-08-21 12:00:09 +00:00
ehouse
f5f5df990e Drive hosts launched from list of local roles in anticipation of
splitting tests between machines.
2009-08-21 03:31:34 +00:00
ehouse
493d3c226f log when crash 2009-08-20 12:12:43 +00:00
ehouse
1264cacdc1 when one participant in a game crashes kill the rest so another can
begin.
2009-08-20 11:56:33 +00:00
ehouse
53133839a4 don't log list of sockets by default 2009-08-20 03:50:40 +00:00
ehouse
e96becb05f variable name change only (for clarity) 2009-08-13 12:59:55 +00:00
ehouse
522bd8636d include timestamp in "game finished ok" output 2009-07-31 13:04:37 +00:00
ehouse
e746e2bc5b Fix assertion failures 2009-07-31 13:03:38 +00:00
ehouse
fbd3559e3b Fix assertion failures 2009-07-31 13:03:05 +00:00
ehouse
47d6d53419 make log file location configurable; remember start time as used for
permenent IDs on spawn rather than overall boot to avoid duplicating
cids.
2009-07-31 13:02:05 +00:00
ehouse
7077a11af6 pass .css file 2009-07-31 12:58:47 +00:00
ehouse
acbf8180ef add missing lock(); track and display uptime of daemon child as well as parent 2009-07-31 12:56:04 +00:00
ehouse
80ccdd6d04 spelling... 2009-07-31 12:47:58 +00:00
ehouse
f537169db5 Assign 0 not NULL to pthread variables. 2009-07-31 12:43:04 +00:00
ehouse
bcc887c0b1 Need to remove before inserting. Todo: is there a replace? 2009-07-31 12:39:47 +00:00
ehouse
503db9cc6f up copyright 2009-07-30 12:54:17 +00:00
ehouse
f35f2fe696 add css file path 2009-07-30 12:52:05 +00:00
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
7338a706cb option to randomly kill xwords instances 2009-07-29 04:31:23 +00:00
ehouse
192fb50bf8 add SIGINT handler that calls quit (to save files). Listen for errors in poll. 2009-07-29 04:29:29 +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
9ab746d8ac Include strerror output in a few socket-related error messages. 2009-07-28 05:17:44 +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
62b7d3c3a4 Clean up gtk case and fix post-game log checking. 2009-07-28 05:02:09 +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
19cff0f7c5 make all game ids (cookies) unique; fix success test 2009-07-16 04:36:30 +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
fed0458f2e various improvements. Runs games forever now, though exit is clumsy. 2009-07-13 02:57:41 +00:00
ehouse
d7cd277893 Add option to close stdin on startup, which seems required to run
curses version from script.  There's probably a better way...
2009-07-12 01:32:14 +00:00
ehouse
df293db349 script to run lots of games with events at more natural intervals against relay. 2009-07-12 01:18:09 +00:00
ehouse
4c523b628c Make slow-robot work for curses client too. 2009-07-10 05:04:04 +00:00
ehouse
184a154c52 New feature, meant for testing relay, makes robot skip random number
of seconds within specified range before making a move.  Working only
on gtk so far, and will probably never be used other than on linux
clients.
2009-07-09 12:43:51 +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
7893c2066a get rid of gratuitous echo 2009-07-05 01:46:27 +00:00
ehouse
c0073183ba improve relay test script to better run in a loop. 2009-07-03 14:55:20 +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
a954286960 avoid mempool assertions by cleaning up on way out 2009-06-30 12:55:47 +00:00
ehouse
9b29e45ea4 plug valgrind-found leak; prefer localtime_r. 2009-06-29 12:58:30 +00:00
ehouse
c347bbd963 tweak new game dialog 2009-05-01 04:36:58 +00:00
ehouse
e19e8411cb fix compilation error 2009-05-01 04:29:13 +00:00
ehouse
927c363edf Move more (hopefully this is it) strings into resources; make sure all
three .rc files have all strings.
2009-04-30 04:25:17 +00:00
ehouse
ce09a83b12 script to check that .rc files have all expected ids defined 2009-04-30 04:20:30 +00:00
ehouse
ee2e1e1234 Move another string from code into resources. 2009-04-26 20:21:21 +00:00
ehouse
0c5088192d remove logging 2009-04-26 20:20:14 +00:00
ehouse
e4977e2c5f Add ability to scroll dialogs by dragging. Works only on
touchscreens, and has no sense of momentum.
2009-04-26 20:10:28 +00:00
ehouse
eb5ee8431b check string ids back in rather than generating; move macro from .rc
file into new .h all can include; use XWCOMBO more; build shippable
files in new built directory within obj_*; don't tell windres that
french is english.
2009-04-24 05:36:31 +00:00
ehouse
6638b251e0 Give all labels real IDs so can be moved; flesh out locale picker
dialog; add macro to replace listbox/combo triplet; rename some ids.
2009-04-23 12:37:07 +00:00
ehouse
568c75ba9a list dlls by name rather than pattern 2009-04-23 12:31:03 +00:00
ehouse
e573fa4fb5 add missing include 2009-04-23 12:12:57 +00:00
ehouse
3ae06069b4 Fix typo 2009-04-22 12:50:31 +00:00
ehouse
efe9fdf974 When resize dialog, put half the now-wider right margin on the left. 2009-04-21 12:42:51 +00:00
ehouse
984ec5934b get rid of translate comments. no code change. 2009-04-21 04:44:30 +00:00
ehouse
d06ade3cd7 Tweak resource layout to fit French translations better. 2009-04-21 04:29:37 +00:00
ehouse
173b49c2e2 Latest French translations; copyright catchup. 2009-04-19 17:36:28 +00:00
ehouse
c5ade1431a Move a few more strings into resources. 2009-04-19 17:34:14 +00:00
ehouse
481e2acb92 Add dialog for choosing localization .dll; save choice in prefs and open on boot. 2009-04-19 17:33:39 +00:00
ehouse
a7bf9f611d strip .dlls for size -- and since this seems to work around cegcc's problem with winmo 6.1 2009-04-19 17:12:55 +00:00
ehouse
8d6150e025 First cut from translator. 2009-04-14 03:38:33 +00:00
ehouse
80b9fde2da Starting point for French translation. 2009-04-14 03:34:41 +00:00
ehouse
51b0fd5e4e Changes to use .dll on wince: create window, which creates its menu,
after loading prefs since that's where language pref will be stored.
But for now, hard-code to load French so translator can see it
immediately.  Also, create l10n directory in which localized .rc files
will live and modify Make file to .dlls from all.
2009-04-14 03:33:46 +00:00
ehouse
76c0a518f1 change -j to -j3. No code change. 2009-04-14 03:27:32 +00:00
ehouse
61fc087c5d annotate template for translators. No code change. 2009-04-11 16:49:04 +00:00
ehouse
d19f052503 Track HINSTANCE of localization .dll separately, passing it where
appropriate; move rest (I think) of strings into resource; load menu
for win32 app after loading localization .dll.
2009-04-11 15:45:59 +00:00
ehouse
be7fe94650 add more strings 2009-04-11 15:41:40 +00:00
ehouse
aeb6d94248 generate string resource IDs from a list to avoid the trouble of keeping them sequential. 2009-04-11 15:40:19 +00:00
ehouse
d5afc6f252 generate string resource IDs from a list to avoid the trouble of keeping them sequential. 2009-04-11 15:40:01 +00:00
ehouse
848ccaaff7 remove resources (e.g. colors) that don't need localization; add more strings. 2009-04-11 15:38:40 +00:00
ehouse
2727cacae0 Start factoring out strings for localization: move most to resource,
add new file that loads resources (working around LoadString not
working as docs say it should).  Add all-caps version for testing and
not-yet-working cmdline change to use it.
2009-04-09 13:48:38 +00:00
ehouse
9df574b6f6 Fix to compile (and so dicts are read into new internal format) on Palm. 2009-04-07 04:33:47 +00:00
ehouse
669e423ca8 Use new dict API to get rid of XP_UCHAR4 type, replacing with const XP_UCHAR*. 2009-04-07 04:23:56 +00:00
ehouse
2838f421a5 fix a couple of null ptr exceptions 2009-04-05 23:48:33 +00:00
ehouse
7b5259a5c0 Use simpler API (no behavior change; not utf-8 related). 2009-04-05 20:19:29 +00:00
ehouse
f3b53e4aaf When dict is utf8, convert to wchar_t assuming CP_UTF8 rather than CP_ACP. 2009-04-05 20:18:46 +00:00
ehouse
f0d6dda9dd A couple of new types for xp code dealing with utf8. 2009-04-05 19:27:30 +00:00
ehouse
241b24c862 Read new dicts and old into new format. 2009-04-05 19:24:10 +00:00
ehouse
a9b88d95b2 Read new dicts and old into new format. 2009-04-05 19:22:55 +00:00
ehouse
641ae18864 Use new dict api to support utf8 faces. 2009-04-05 19:20:22 +00:00
ehouse
9f6114fb9e don't cast. 2009-04-05 19:18:47 +00:00
ehouse
96cfd7c7dd New stream version: dict sent over wire has faces as utf8 (unless dict is not.) 2009-04-05 19:16:52 +00:00
ehouse
38a23ba74f Begin changes for utf8 support (mostly from unicode_branch). Dict now
provides tiles as null-terminated const strings ptrs to which can be
passed and stored.  They're utf8 strings.  Old dicts still work,
platform must convert to utf8 on load.
2009-04-05 19:02:21 +00:00
ehouse
4a308f4f8e Don't use unitialized variables (thanks valgrind :-) 2009-04-05 18:47:45 +00:00
ehouse
b63c75f36e use libncursesw 2009-04-05 18:35:51 +00:00
ehouse
926f5963a3 rename only: stream_putString to stream_catString. 2009-03-29 18:26:59 +00:00
ehouse
8dca48b3ea Useful ftell, commented out. 2009-03-29 18:13:09 +00:00
ehouse
9e5b3f8f29 Changes to fix BYOD (though still need native speaker confirmation) 2009-03-14 22:33:53 +00:00
ehouse
690bf80b7b Fix so can build iso-8859-2 Polish dicts using make (won't work on
BYOD yet): add encoding to emacs mode line and fix the letters,
including hard-coding them as decimal numbers until I can figure out
how to get perl (in xloc.pm) to emit iso-8859-2 instead of utf8.
2009-03-14 19:27:29 +00:00
ehouse
0b0bf96cd5 accept ISO-8859-2; remove unused param; add assert that EOF/EOL aren't
part of a multibyte char
2009-03-14 19:22:15 +00:00
ehouse
b16a07d0ba build dict2dawg with debug symbols 2009-03-14 19:21:09 +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
f9e6c5631d Move WSACleanup into main where it can be called once per launch
rather than per use of relay, parallel to WSAStartup.
2009-03-08 20:01:47 +00:00
ehouse
f874183475 Use nwgamest support for separate config button beside role combo, and
remove hack responding to tap (without change) on that combo.
2009-03-08 20:00:20 +00:00
ehouse
cb72b3ffef call gi_initPlayerInfo() for defaults when not provided on commandline. 2009-03-08 19:57:27 +00:00
ehouse
53fca87b10 Go back to combo box for role, and add config button beside it using new support in nwgamest. 2009-03-08 19:56:48 +00:00
ehouse
de4c57e740 include strerror output in logging when socket read fails 2009-03-08 19:56:01 +00:00
ehouse
d7eaa8e574 Add functions names to log statements. 2009-03-08 19:54:50 +00:00
ehouse
4e1155583f Add support for a config button as a cleaner alternative to launching
comms config dialogs on changes to host type (which often involved
platform-specific hackery to trigger the dialog when user doesn't want
to change role)
2009-03-08 19:54:14 +00:00
ehouse
f598340239 relay name defaults to eehouse.org, easier to set at compile time for testing 2009-03-08 19:47:36 +00:00
ehouse
4909ae0137 Close down relay connection when comms going away. Fixes crashes when
new game is standalone and prev used relay.  Add logging code in comms.
2009-03-06 13:43:03 +00:00
ehouse
8fd1d5b2a9 cleanup for new compiler: -D option, winsock2.h, fix warning 2009-03-06 04:53:56 +00:00
ehouse
44ef132d85 swprintf->_snwprintf to make newer cegcc happy 2009-03-06 04:52:06 +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