Commit graph

7125 commits

Author SHA1 Message Date
Eric House
d10e9f6235 use vlis for acks in both directions 2013-08-25 16:59:07 -07:00
Eric House
47414beeb2 catch up with changes in udp proto: use vli for packet num in header. 2013-08-25 16:15:37 -07:00
Eric House
7e02db78db change function name spelling 2013-08-25 16:14:42 -07:00
Eric House
91235f3be7 begin process of using variable-length-ints in udp protocol. Works
between linux client and relay, but unrelased features of Android
client will be broken until fixed.
2013-08-25 12:34:35 -07:00
Eric House
69f34f4ef8 make method private 2013-08-25 12:32:26 -07:00
Eric House
cf3437c686 fix argc checking to prevent crashes 2013-08-23 07:44:42 -07:00
Eric House
4be1653ab7 remove logging 2013-08-23 07:41:10 -07:00
Eric House
235346b7a4 fix signature string (and log when there's a mismatch) 2013-08-23 07:41:10 -07:00
Eric House
38adea1612 fix infinite recursion 2013-08-22 08:23:32 -07:00
Eric House
1af12f1de2 refactor packet assembly/sending so posting message can post all,
including header.
2013-08-22 08:15:38 -07:00
Eric House
16aafccec6 to telnet interface add ability to forget device and to send to one
not known (which will make message available next time it connects or
via GCM); rename methods.
2013-08-22 06:29:20 -07:00
Eric House
23a59e8097 sometimes a device goes away and we don't notice, so when it comes
back just reuse its record rather than asserting there's no record
there.
2013-08-21 21:32:55 -07:00
Eric House
45998fd2c0 don't assert when packet size short is unexpectedly large. Not sure
why this happens, but it's not a reason to abort a test.
2013-08-21 21:28:47 -07:00
Eric House
3dee41e584 set new clntvers row in devices table at the same time as updating it
in games table.  (The latter is now redundant and will go away.)
2013-08-21 06:49:37 -07:00
Eric House
f728f7459b pass INITIAL_CLIENT_VERS and git version to relay 2013-08-20 08:42:41 -07:00
Eric House
5197033de3 In the spirit of setting constants in only one place, pass
INITIAL_CLIENT_VERS in from build.xml rather than the jni makefile,
and make it available in java world as well.
2013-08-20 08:42:12 -07:00
Eric House
2157706dcd add client version and a desc string to devices DB and to reg info sent to relay 2013-08-20 08:09:45 -07:00
Eric House
a8d67830d8 add missing enum 2013-08-19 20:51:03 -07:00
Eric House
84d06b9fed use g_shell_parse_argv() to parse input buf (so messages can be in
quotes and contain whitespace)
2013-08-19 08:25:06 -07:00
Eric House
7bce97f78a post notification, not alert, on receipt of relay alert message 2013-08-19 07:02:03 -07:00
Eric House
0868a33c83 print out whether message is ACK'd or not 2013-08-18 20:52:09 -07:00
Eric House
31a3a593a4 handle alert command by posting message (if app's in foreground;
should otherwise post an intent...); remove some of excessive logging
2013-08-18 20:13:08 -07:00
Eric House
5412119a6f add hexDump (commented out) 2013-08-18 15:49:13 -07:00
Eric House
d0aca01289 clean up send message/alert code 2013-08-18 15:48:44 -07:00
Eric House
47203437cc register devices more often; add ctrl command to send text message to
device if possible, otherwise to post it to the db (mostly for testing).
2013-08-17 14:55:19 -07:00
Eric House
8ad549d2bd query on null db fails, doesn't assert 2013-08-16 19:15:28 -07:00
Eric House
e776f7b230 comment out toast that's showing on every connection -- too annoying 2013-08-15 22:32:00 -07:00
Eric House
8c56f55445 track time since last game-related packet, not any packet from relay. 2013-08-15 22:32:00 -07:00
Eric House
10ef75113f factor common code 2013-08-15 22:32:00 -07:00
Eric House
6a27bbba94 tweaks to new ctrl command 2013-08-15 19:22:23 -07:00
Eric House
d07bb5013d oops: function need to return something 2013-08-15 19:22:01 -07:00
Eric House
62f0819a82 Toward resurrecting ctrl feature to give runtime info about stuff that
isn't in the DB.  Step one: comment out the stuff that doesn't compile
and add ability to print all registered devices with their ages.
2013-08-15 08:44:33 -07:00
Eric House
06f0b7e411 treat KEEPALIVE same as RQSTMSGS (for now) 2013-08-15 07:25:20 -07:00
Eric House
61009cefc7 in advance of using memcache, keep track (in memory) of those devids
for which no messages are pending, since that's a query that can be
made by each device every minute.
2013-08-15 07:24:30 -07:00
Eric House
42bbc946ae quote variable and echo when switching to udp 2013-08-15 07:20:22 -07:00
Eric House
f1b60dab62 Don't assert when can't find state transition. At least in some cases
these result from unexpected/out-of-order packets that slip through.
2013-08-14 08:11:21 -07:00
Eric House
fe51d19c2e Device can't be 'alreadyHere' if has hostID of 0 since the only way a
device gets registered involves giving it a non-0 hostID.  Fixes array
OOB access.
2013-08-14 08:10:09 -07:00
Eric House
80f66d1df7 remove test for duplicates now that it's impossible 2013-08-13 08:20:57 -07:00
Eric House
5be8779749 remove redundant member variable 2013-08-13 08:19:32 -07:00
Eric House
c9406c36ae use a simple array rather than a vector to store currently connected
devices.  It's simpler, searching for hid is faster, and it makes it
easier to detect when we try to add the same device twice.
2013-08-13 08:04:19 -07:00
Eric House
652a8ec905 toward staying reachable as-if GCM were there: note whether GCM
working, and if so skip keeping the connection up.  But otherwise stay
reachable by relay for a week after last udp packet was received.
2013-08-12 08:24:52 -07:00
Eric House
09494dcf09 remove unused param 2013-08-12 08:15:55 -07:00
Eric House
0ba0530bf3 set global before informing of change so if there's a query result
will match what was sent
2013-08-12 08:13:58 -07:00
Eric House
fde50cce32 move timeout interval into config file; cleanup 2013-08-12 07:41:48 -07:00
Eric House
a96c0c548f switch from static final ints to an enum; no other change. 2013-08-11 10:47:01 -07:00
Eric House
1d52a9afea add reset button to ConnStatusHandler on-click dialog that calls to
stubbed-out function in RelayService
2013-08-10 23:24:46 -07:00
Eric House
de1803c9dd cleanup: reduce number of params required 2013-08-10 17:36:37 -07:00
Eric House
758c6a6c5c add interface to ConnStatusHandler as part of moving UI-based response
into Activity.
2013-08-10 14:25:28 -07:00
Eric House
dbc1bb1cd5 use getHandler() 2013-08-10 08:54:51 -07:00
Eric House
787367071d show only those devids in the visible games 2013-08-08 19:55:04 -07:00
Eric House
f96155f12b merge changes for quick b65 2013-08-08 01:14:23 -07:00
Eric House
9528e61f84 Merge remote-tracking branch 'origin/android_branch' into android_branch 2013-08-08 01:07:02 -07:00
Eric House
635b948c41 don't drop messages from devices without a devID -- lots of older
devices are in that boat.
2013-08-08 00:40:32 -07:00
Eric House
20056153aa up version strings 2013-08-07 23:54:47 -07:00
Eric House
6bb2a9bb9a fix crash upgrading from beta 30 (which is two years old!) 2013-08-07 23:52:37 -07:00
Eric House
d8e6979bcc cleanup: store db schema as arrays of arrays rather than arrays whose
odd- and even-indexed members have different roles.  Uses slightly
more memory but is better code.
2013-08-07 23:48:33 -07:00
Eric House
d00e9edf55 fix crash upgrading from beta 30 (which is two years old!) 2013-08-07 23:36:17 -07:00
Eric House
01c97c5716 null token is a possibility if message was stored by device connecting
via tcp and device is now connecting via udp
2013-08-07 21:59:21 -07:00
Eric House
cd9eea665b oops: still need to register device connecting via tcp so gcm sends
can work.
2013-08-07 21:36:06 -07:00
Eric House
84b77d4456 log threadid as unsigned int 2013-08-07 21:32:58 -07:00
Eric House
b49486fc3f cleanup: use constant and add/use isUDP() 2013-08-07 21:31:10 -07:00
Eric House
ae21b6f0d8 use new --use-udp flag and, by default, switch devices from tcp- to
udp-based connections over time at a configurable rate.
2013-08-07 21:12:08 -07:00
Eric House
71ea59e7fb separate whether app is using udp from whether it stores games in a
sqlite3 db so that it can switch mid-game -- that being something that
needs testing.
2013-08-07 21:09:48 -07:00
Eric House
bac947d780 don't remember tcp-based addresses. Fixes problem when a device
switches from tcp- to udp-based connection.
2013-08-07 21:04:05 -07:00
Eric House
91c82d9874 tweak logging to match format gdb prints 2013-08-07 21:03:11 -07:00
Eric House
6dbabaa319 cleanup 2013-08-07 21:02:47 -07:00
Eric House
da3f62729b Merge tag 'android_beta_64' into android_branch
beta 64
2013-08-07 06:18:15 -07:00
Eric House
b33991486c up strings for next beta (a quick fix) 2013-08-06 22:03:09 -07:00
Eric House
a38fd0e96c fix too-short tray on 10" tablet by making height a 16-bit value, not 8-. 2013-08-06 21:56:10 -07:00
Eric House
b9450589c8 add new commandline option --use-udp. Not yet used. 2013-08-06 21:10:42 -07:00
Eric House
470dbb5304 oops: still remove address from set tracked if it's not tcp 2013-08-05 07:50:11 -07:00
Eric House
4ad6696ecc add delete-on-ack logic to another message sending site, and fix
assertion failure caused by not providing a client token on messages
being sent.
2013-08-02 22:33:06 -07:00
Eric House
ed0c0fe3a5 add methods that don't require handler but use any set 2013-08-02 08:03:35 -07:00
Eric House
1e94e217b8 collapse catch statements since all do the same thing 2013-08-02 08:02:46 -07:00
Eric House
da54b1e5fb add keepalive timers 2013-08-02 08:01:16 -07:00
Eric House
1e35d676bf change constant name 2013-08-02 07:31:41 -07:00
Eric House
6e14a6d33a fix leak; remove unused variable 2013-08-02 06:11:08 -07:00
Eric House
8b936ea0ea iterator is invalid after erase() call, so advance first. Fixes problem valgrind found. 2013-08-02 06:08:41 -07:00
Eric House
a8cc920dcf new method 2013-08-01 07:49:12 -07:00
Eric House
4ecb0f534d For a subset of stored messages sent, don't remove from DB until
they're acked.  (This is the goal for all messages sent via UDP, but
will be harder elsewhere in the code.)
2013-08-01 07:48:44 -07:00
Eric House
684effd170 cleanup 2013-08-01 06:12:58 -07:00
Eric House
17b8eae1f1 clean up fetching of stored messages, and excluse those from dead games 2013-07-31 07:24:58 -07:00
Eric House
64b89536b0 Test whether game is on device before starting process of opening it.
Fixes problem caused by relay sending messages for games that have
been deleted.
2013-07-30 07:43:52 -07:00
Eric House
4ce2368e90 remove unused variable and functions that set it 2013-07-30 07:35:13 -07:00
Eric House
54c1e0c2ab drop bogus assert 2013-07-29 17:39:43 -07:00
Eric House
b40533230a fix OS warning by unregistering SMS receivers in onDestroy 2013-07-29 07:50:01 -07:00
Eric House
63ad3a196b debug build asserts that packet is meant for this device, but
non-debug should drop those that aren't.
2013-07-29 07:30:46 -07:00
Eric House
1f877c7567 remove logging 2013-07-29 07:29:01 -07:00
Eric House
d8a4b5ce29 include udp maxInterval, the number of seconds the relay's configured
to assume an address is still good when it hasn't heard from it, in
reg response reply, send that reply always, and read and log the new
field on clients.  It will eventually be used to implement a
keepalive.
2013-07-29 07:27:30 -07:00
Eric House
cdea106824 change param to simplify code a bit 2013-07-29 06:33:31 -07:00
Eric House
5f9b2e431f optimization: test address before fetching messages for it 2013-07-28 07:28:32 -07:00
Eric House
9951064439 fetch all stored messages at once to reduce number of DB calls made. 2013-07-25 06:37:53 -07:00
Eric House
6bb2efbbd5 remove mistaken assert 2013-07-24 06:03:50 -07:00
Eric House
41160579ca remove duplicate 2013-07-23 18:30:08 -07:00
Eric House
bfc617720e add isCurrent() method on UDP addresses based on how long it's been
since we've received data from the same source, and use to drop
packets in response to reads that are older than when the test says
the endpoint of the address changed.
2013-07-23 06:21:57 -07:00
Eric House
572d3596ae add heretofore undocumented config 2013-07-23 06:18:17 -07:00
Eric House
ceacbc2cbe fix formatting error 2013-07-23 06:17:35 -07:00
Eric House
acca4d14d4 new files to track how long it's been since data's been received from
a UDP address.  The idea's that when there's too long a gap the
address has likely been recycled and we shouldn't send replies to
packets received before the reset.
2013-07-22 07:26:14 -07:00
Eric House
6418513a6d don't try to read from socket if == -1 2013-07-22 06:15:35 -07:00
Eric House
385243763a Merge remote-tracking branch 'origin/android_branch' into android_branch 2013-07-22 06:13:01 -07:00
Eric House
a191c6fc2a don't add chats to queue at len 64 rather than 128 2013-07-22 06:12:06 -07:00
Eric House
7b18da70db logging tweak 2013-07-22 06:11:10 -07:00
Eric House
48a2567edf log contents of incoming udp packets 2013-07-22 06:06:39 -07:00
Eric House
13550865ad drop packets in queue if they've been there longer than 30 seconds --
which should be a configurable value.
2013-07-22 06:05:24 -07:00
Eric House
3a14b12cc5 exit when number of core files changes, not if it's non-zero 2013-07-20 12:52:32 -07:00
Eric House
13c234dfab log when address replaced 2013-07-20 11:59:00 -07:00
Eric House
49a2d099f0 include packet num in every udp packet. They start over on app
reboot, but add a bit of help with debugging.
2013-07-20 11:57:10 -07:00
Eric House
5d8cd5a17f recognize already-seen devices. This seems to occasionally fix
reconnect problems but needs to be studied/tested more -- check logs.
2013-07-20 11:44:00 -07:00
Eric House
464ef49018 add new send_via_udp that may be able to check for address validity 2013-07-20 10:37:38 -07:00
Eric House
792a51a404 change ivar name 2013-07-20 08:33:22 -07:00
Eric House
61992943dd Add mapping from address to devid in order to catch when an address is
reused.  That required making AddrUnion a class rather than a simple union.
2013-07-20 08:06:14 -07:00
Eric House
573a87993e Don't propogate chat when queue too full. This *should* only impact
tests since users won't keep chatting at a non-responsive friend.
2013-07-20 08:01:56 -07:00
Eric House
32150049e2 assert that we aren't tracking two connected games with the same hid 2013-07-20 06:28:35 -07:00
Eric House
27d9f3de45 Don't enable chat when more than 128 messages are in queue to prevent
an extremely unlikely cause of stalls -- and make tests trip over full
queues less often.
2013-07-18 07:37:45 -07:00
Eric House
3f59b31d51 Log received udp messages as b64-encoded strings. These match what the
relay's now logging
2013-07-18 07:07:25 -07:00
Eric House
1e6ff9b33c include seed in chat messages to make sure they're unique 2013-07-18 07:06:20 -07:00
Eric House
2ce097629f log contents of udp packets as b64-encoded strings for debugging; off
by default.
2013-07-18 06:52:07 -07:00
Eric House
06dd9a99a1 better logging 2013-07-17 21:34:52 -07:00
Eric House
3737f19548 better logging 2013-07-17 21:34:27 -07:00
Eric House
972dcfec81 cleanup 2013-07-17 21:33:59 -07:00
Eric House
1d5cf0bea7 don't remember devid unless it's valid 2013-07-17 21:33:36 -07:00
Eric House
93a7c7f817 fix to compile when DEBUG not defined 2013-07-17 06:52:35 -07:00
Eric House
bf39f9194c kill service after 3 minutes of no socket activity 2013-07-17 06:42:54 -07:00
Eric House
d436232800 correctly log b64 dump of return address at record and use sites 2013-07-17 06:38:25 -07:00
Eric House
62dacb83d8 fix to compile when DEBUG not defined 2013-07-16 08:17:46 -07:00
Eric House
4d9d65b67e Merge remote-tracking branch 'origin/android_branch' into android_branch 2013-07-16 08:07:41 -07:00
Eric House
3d9539b42b don't stop comms before every save, but only when stopping 2013-07-16 08:06:23 -07:00
Eric House
5571816339 enable udp by default 2013-07-16 08:05:46 -07:00
Eric House
403401745e network connection stuff must not be run on main/UI thread, so to
preserve socket connection completing before startup of read and write
threads, move it and start of write thread to beginning of read
thread.
2013-07-16 08:01:59 -07:00
Eric House
b7e00bfc0c log when unable open game based on rowid -- which may happen if
e.g. relay is sending packets to wrong device.
2013-07-16 07:56:56 -07:00
Eric House
d6fd79be44 log, and be more aggressive about closing, sockets on which errors occur 2013-07-16 06:43:30 -07:00
Eric House
e6e7154c82 close socket rather than proceed with what looks like a bad packet/connection 2013-07-16 06:42:21 -07:00
Eric House
021d6370f3 drop, rather than asserting about, corrupt packets -- meaning where
the player counts don't make sense.
2013-07-16 06:40:00 -07:00
Eric House
1638d964fb log socket address to try to track down apparent misaddressing 2013-07-16 06:38:26 -07:00
Eric House
cd728853b9 check for case where rowid doesn't exist (rather than NPE) 2013-07-15 07:51:15 -07:00
Eric House
e80fe76652 assert we don't go out of bounds on array 2013-07-15 07:33:27 -07:00
Eric House
27e90c2d2c exit as soon as there's a core file 2013-07-15 07:16:35 -07:00
Eric House
b5714e9d14 improve API: hide special numbers inside implementation 2013-07-12 08:24:44 -07:00
Eric House
ab1ae7c9ad remove logging 2013-07-12 08:19:53 -07:00
Eric House
9e358ad413 don't insert a new message in queue if it's identical to the one
currently at the end.  This mostly happens when devices are making
several initial client connection attempts before succeeding.
2013-07-12 07:34:12 -07:00
Eric House
8a4e766b32 make 50% of games communicate via UDP by default 2013-07-11 20:39:40 -07:00
Eric House
491b288631 assert that the seed's preserved for curses version too (where
clientToken is otherwise ignored since there's only one game per app
instance)
2013-07-11 20:39:10 -07:00
Eric House
9db54a5461 make linux version's gameToken combine game's seed with rowid so we
can test that the relay is keeping them straight
2013-07-11 20:01:17 -07:00
Eric House
f27d8d5d8f list java files first so their methods, which tend to be more
numerous, will be found last.
2013-07-11 19:56:37 -07:00
Eric House
d6658c5c08 don't show other_disconnected error message 2013-07-10 23:14:48 -07:00
Eric House
7dfd19a7a2 name change 2013-07-10 23:14:24 -07:00
Eric House
5814febad5 better client token logging 2013-07-10 23:13:50 -07:00
Eric House
2060aa4577 don't match on empty devID 2013-07-10 23:12:57 -07:00
Eric House
a522266ce4 add message checksumming for android too by making it part of util
(compiled out by default)
2013-07-10 08:05:47 -07:00
Eric House
dbf156fca7 remove excess logging 2013-07-10 08:02:28 -07:00
Eric House
5462a05692 Merge branch 'gtk_multigame' into android_branch 2013-07-09 19:35:26 -07:00
Eric House
bf1cdf225c print queue less frequently 2013-07-09 19:32:49 -07:00
Eric House
4bde445c48 fix so gtk mode works too by providing storage for CurGameInfo 2013-07-09 18:19:22 -07:00
Eric House
5a20cc282c fix so curses app works well enough that discon_ok2.sh script runs
successfully.  GTK mode is untested and certainly broken.
2013-07-09 18:10:41 -07:00
Eric House
48fbf15a69 needed to quote variable 2013-07-09 18:07:03 -07:00
Eric House
f5696334a9 changes to get the merged code to compile but not included by git in the commit 2013-07-09 07:25:23 -07:00
Eric House
79f07e8751 cleanup 2013-07-09 07:19:20 -07:00
Eric House
d50c808f96 Merge branch 'android_branch' into gtk_multigame
Conflicts:
	xwords4/android/XWords4/src/org/eehouse/android/xw4/DlgDelegate.java
	xwords4/common/comms.c
	xwords4/linux/cursesmain.c
	xwords4/linux/cursesmain.h
	xwords4/linux/gtkmain.c
	xwords4/linux/gtkmain.h
	xwords4/linux/linuxmain.c
	xwords4/linux/main.h
	xwords4/linux/scripts/discon_ok2.sh
	xwords4/relay/xwrelay.cpp

(Note: The curses app crashes on exit with mempool assertions, but that's a problem before the merge.)
2013-07-09 07:18:00 -07:00
Eric House
db26c32c3e revert accidental part of commit 2013-07-08 07:14:42 -07:00
Eric House
7d968f8502 target is now hard-coded since I reliably can't derive it from the
manifest file.
2013-07-08 07:13:48 -07:00
Eric House
7e36171046 add comment 2013-07-08 07:13:04 -07:00
Eric House
11994d06f8 quote variable to make shell happy 2013-07-08 07:09:03 -07:00
Eric House
e7d20fd2a3 change API version configured by build script to be what I'm using now 2013-07-08 07:03:57 -07:00
Eric House
008cce8f37 Revert "pass additional param into java world so don't show toast every time connect to relay"
This reverts commit e9615cb154.
2013-07-08 06:30:26 -07:00
Eric House
bb68b25429 remove suggestion I don't have permission to use icons! 2013-07-07 19:53:12 -07:00
Eric House
a3de759d9e fix to compile on Android when DEBUG set 2013-07-07 19:40:07 -07:00
Eric House
e9615cb154 pass additional param into java world so don't show toast every time connect to relay 2013-07-07 13:31:49 -07:00
Eric House
923d41e0ee fix to compile when DEBUG not set 2013-07-07 13:17:26 -07:00
Eric House
0f104db88c list another change 2013-07-07 13:07:12 -07:00
Eric House
2c5ac1c293 remove excess logging 2013-07-07 13:07:02 -07:00
Eric House
fb32c847ae more changes from translator 2013-07-05 21:37:38 -07:00
Eric House
bbac923f68 assert queueLen at the point where it'll be easier track why it's overgrowing 2013-07-05 21:32:41 -07:00
Eric House
232b27e06a combine two log lines 2013-07-05 21:31:39 -07:00
Eric House
f87ffe7a96 display new column 2013-07-05 21:28:27 -07:00
Eric House
e8022d44ea correctly parse hid from relayID, fixing assertion failure. I'm not
sure how it ever worked....
2013-07-05 21:26:17 -07:00
Eric House
713551fa43 only log recv() errors that aren't related to non-blocking sockets 2013-07-05 21:23:54 -07:00
Eric House
7ecaf76b22 Merge remote-tracking branch 'origin/android_branch' into android_branch 2013-07-05 21:21:19 -07:00
Eric House
254b82104c reduce priority of log message 2013-07-05 08:03:31 -07:00
Eric House
2cd84c4229 test that address is good each time through loop 2013-07-05 08:03:03 -07:00
Eric House
23c66e93ab add flag required to compile on some linux systems 2013-07-05 08:02:22 -07:00
Eric House
a93eb4a511 fix assertion failure: log and drop packet when hid outside of accepted range. 2013-07-05 08:01:31 -07:00
Eric House
883cec0652 log whether b64 encoding is being used 2013-07-05 06:56:43 -07:00
Eric House
7419e3506a add missing string to translation 2013-07-05 06:19:28 -07:00
Eric House
cd1886a751 changes from translator 2013-07-04 20:46:59 -07:00
Eric House
4b5af7ebdf don't try to read from socket after it's been closed 2013-07-04 12:37:55 -07:00
Eric House
e6248210a5 when formatting final scores, print all players with top score as
Winner (fixing bug that occurred in case of a tie)
2013-07-04 12:37:10 -07:00
Eric House
7229535be7 insist on non-0 channel ID *net of mask*; don't send acks when we
don't have a connID yet, as this confuses the server.  This fixes
assertions in testing that were pretty common when chat was enabled;
it may also fix the reported problem on Android that games get hosed
when people are using chat, as the server's response (without the
assert) was to add a new channel.
2013-07-03 07:39:05 -07:00
Eric House
8e12a8ef84 when we get a fatal error from postgres server, try killing then
recreating the connection.  This is untested, as fatal errors are
rare.
2013-07-03 07:36:15 -07:00
Eric House
3364dcbf46 remove unused enum 2013-07-03 07:26:23 -07:00
Eric House
858d00332a when an initial message from a client arrives with channel already
set, drop it (after asserting in debug code.)  I'm not yet sure why
this happens, but giving it a new channel is not the right move.
2013-07-02 18:49:48 -07:00
Eric House
6cd3ebd780 improve logging 2013-07-02 18:31:02 -07:00
Eric House
0ac5d6d9e2 don't send more than three unanswered chats per boot -- to avoid
filling up the queues in a way that doesn't reflect real use.
2013-07-02 18:30:23 -07:00
Eric House
b53f9bc578 let Pqexec fail three times, usleeping between, before restarting with an assert 2013-07-02 07:27:31 -07:00
Eric House
dd48cea912 don't log string before it's initialized 2013-07-02 07:26:32 -07:00
Eric House
a8f49ad94b Merge remote-tracking branch 'origin/android_branch' into android_branch 2013-07-02 06:08:23 -07:00
Eric House
9fca3792cf don't pile on chat messages when relay isn't even connected: it's an
unfair test that doesn't duplicate what users will likely do.
2013-07-02 05:53:58 -07:00
Eric House
3d18e5832e specify server's port in conf file since at least on one of my
machines it's not what libpq expects.  (Required by upgrade from 8.4
to 9.1.)
2013-07-02 05:46:48 -07:00
Eric House
1f63745e34 add more logging in search of channelNo bug 2013-07-01 07:54:38 -07:00
Eric House
2da26cf8a9 cleanup/comment 2013-07-01 07:52:02 -07:00
Eric House
c202cd8608 don't pile on chat messages when relay isn't even connected: it's an
unfair test that doesn't duplicate what users will likely do.
2013-07-01 07:51:38 -07:00
Eric House
9ceb1615b3 replace tabs with spaces 2013-06-30 17:24:33 -07:00
Eric House
070590b3c2 cleanup 2013-06-30 08:34:09 -07:00
Eric House
b506a91068 add commandline params 2013-06-30 08:33:58 -07:00
Eric House
c77021231c print checksums of sent and received messages 2013-06-30 08:33:29 -07:00
Eric House
195f873ab0 tweak logging 2013-06-30 07:37:35 -07:00
Eric House
6fbf2d4a8b use g_compute_checksum_for_data, removing self-written equivalent 2013-06-30 07:36:56 -07:00
Eric House
7efbfab0e5 fix crash in debug version: len of data to be summed needs to be 32 bits! 2013-06-30 06:50:57 -07:00
Eric House
1a73ab26ac tweak logging 2013-06-28 20:33:27 -07:00
Eric House
17eda4e5e1 move md5sum code into separate function that relay can copy 2013-06-28 20:33:12 -07:00
Eric House
6c756533e3 fix double-dispose crash (but there's still a memory leak) 2013-06-28 20:32:19 -07:00
Eric House
5c284fe6b0 test PID is live before killing it 2013-06-28 18:55:19 -07:00
Eric House
8419bf2a04 close socket if length == 0 -- protocol violation or network error 2013-06-28 18:48:57 -07:00
Eric House
0a794f390f fix off-by-one error leading to malformed queries 2013-06-28 18:47:11 -07:00
Eric House
3f2548dcce Merge branch 'fix_tablets' into android_branch
Conflicts:
	xwords4/android/XWords4/res/raw/changes
2013-06-27 08:04:03 -07:00
Eric House
4a49c49e87 changes for second tablet fix release. This time I've confirmed they
work on the google store.
2013-06-27 07:58:02 -07:00
Eric House
292982a4b4 when splitting packet, queue them and send on timer rather than
sleeping the main thread.
2013-06-27 07:00:36 -07:00
Eric House
0447b9f5e5 column name changed 2013-06-27 06:58:17 -07:00
Eric House
f9cebfe444 track bytes sent per device rather than per game 2013-06-27 06:23:15 -07:00
Eric House
b31858ee5e log rather than assert when hostid changes -- though I'm not seeing
this now that the relay doesn't send packets to the wrong device
2013-06-26 00:42:55 -07:00
Eric House
0bb4f5b0f5 fix occasional memory leak 2013-06-26 00:41:16 -07:00
Eric House
8324b9c770 fix compile error by making HELP another command. 2013-06-26 00:39:58 -07:00
Eric House
9138cd15b7 fix problems with devices reconnecting when their ACKs didn't arrive
and their slots are empty or have been reassigned: basically we check
if a device goes where it expects, and if not treat it as a new
connection rather than a reconnect, meaning its hostid may change.
Existing device code seems ok with that -- and at any rate I don't
think ACKs get dropped much in the wild.
2013-06-26 00:38:34 -07:00
Eric House
909640c82f cleanup/improve logging 2013-06-26 00:36:02 -07:00
Eric House
d7f8e8e198 rq is hanging, so set timeouts on its blocking sockets 2013-06-26 00:27:55 -07:00
Eric House
d801b23a87 add missing config option 2013-06-25 23:40:46 -07:00
Eric House
a1d272bf4f log sockets associated with packets 2013-06-25 22:54:13 -07:00
Eric House
649969bc30 send ALL_HERE to all players 2013-06-25 22:52:13 -07:00
Eric House
f1a257a2aa Merge branch 'android_branch' into local_fix_relay 2013-06-25 21:44:39 -07:00
Eric House
79293503fd Merge branch 'from_beta_60' into android_branch
Conflicts:
	xwords4/android/XWords4/AndroidManifest.xml
	xwords4/android/XWords4/project.properties
	xwords4/android/XWords4/res/raw/changes
2013-06-25 21:25:03 -07:00
Eric House
8cb89976cb new quickie release to fix Play Store filtering out devices without
phones -- or so I think.  Make SMS optional, and up version strings.
2013-06-25 21:14:14 -07:00
Eric House
aa7e9bf751 fix compile when debug define turned on 2013-06-25 07:59:40 -07:00
Eric House
27e9b48b78 fix timestamp math that had newer sometimes less than older 2013-06-25 07:58:15 -07:00
Eric House
7967966982 Merge remote-tracking branch 'origin/android_branch' into local_fix_relay
Conflicts:
	xwords4/linux/linuxmain.c
	xwords4/linux/main.h
2013-06-25 06:18:43 -07:00
Eric House
5612bb000b quick hack to allow testing intermix of chat with normal moves 2013-06-24 18:37:49 -07:00
Eric House
5842654418 fix pattern 2013-06-24 07:30:38 -07:00
Eric House
aca3a96b54 fix pattern so ended games are detected 2013-06-24 07:18:53 -07:00
Eric House
519f90a69a go with non-blocking sockets for tcp connections, adding the ability
to reassemble packets that arrive in separate recv() calls.
2013-06-24 07:09:57 -07:00
Eric House
d4cf37d2ef fix misspelling 2013-06-24 07:05:09 -07:00
Eric House
bc6922cb8b add option to split tcp packets to test whether relay can handle reassembly. 2013-06-24 06:33:06 -07:00
Eric House
ed16437f9a don't refuse to store message when devid isn't available 2013-06-23 19:07:45 -07:00
Eric House
d14688a6a0 fix almost-infinite loop; assert no dup devids 2013-06-22 22:24:18 -07:00
Eric House
5dadbfdad3 drop messages without enough delivery info 2013-06-22 06:01:42 -07:00
Eric House
acd7c8519f give timers ids so can be tracked in logs 2013-06-22 05:56:27 -07:00
Eric House
07d6851a26 logging changes for debugging -- main not belong in main branch 2013-06-22 05:55:38 -07:00
Eric House
c1cc11866f tweak logging 2013-06-22 05:54:32 -07:00
Eric House
25bf0e7191 assertion: should never have two recs for same socket 2013-06-22 05:53:54 -07:00
Eric House
5d20ef872e cleanup 2013-06-22 05:53:32 -07:00
Eric House
6d22c3ab86 tweak logging 2013-06-22 05:51:29 -07:00
Eric House
6027c94a43 don't pass uninitialized variables to logf 2013-06-21 07:26:11 -07:00
Eric House
b1ef09625e pair delete[] with new[] 2013-06-21 07:25:41 -07:00
Eric House
c587848349 cleanup 2013-06-21 06:59:44 -07:00
Eric House
5e22508ff7 kill existing xwords instances as part of --clean-start 2013-06-21 06:58:20 -07:00
Eric House
8b8d22a7ba fix compile error: move function back to being inline since header
can't be readily included from .h file
2013-06-21 06:14:10 -07:00
Eric House
2a35fac1e8 rather than invalidating socket in AddrRec when it's closed, add a
timestamp set when it's opened.  Older copies with the same socket can
be tested against the cannonical copy maintained by tpool and sending
avoided when the timestamp shows the endpoint has likely changed.
Change tpool's list of sockets to a map for faster lookup, and get rid
of similar structure in udpqueue.
2013-06-21 06:05:26 -07:00
Eric House
6446819466 use nice to give the relay a fighting chance 2013-06-21 05:41:23 -07:00
Eric House
11d299606e test for socket == -1 (invalidated) before sending 2013-06-20 07:10:09 -07:00
Eric House
46bd4d0047 inval tcp sockets in return addresses of packets waiting processing
when they're closed to prevent attempting to write replies to the
wrong device should the socket be reopened.
2013-06-20 07:07:56 -07:00
Eric House
5bec10048b add --clean-start option to speed testing 2013-06-20 06:45:51 -07:00
Eric House
985f7bfea0 tweak: don't restart whole loop on unlikely random result 2013-06-19 07:27:34 -07:00
Eric House
ecef687471 drop message, rather than asserting, if device id isn't in db. 2013-06-17 07:52:58 -07:00
Eric House
3e9dfb9a9d allow a thread to get a cidlock it already has. 2013-06-17 07:26:54 -07:00
Eric House
950e754ca2 cleanup 2013-06-17 07:26:10 -07:00
Eric House
a546c025d5 Rather than queuing sockets needing reading, read them immediately and
queue the packets for processing.  Add ids so they can be tracked in
the logs.  In addition to making tcp and udp packet processing more
similar this fixes the case where a read is delayed until after the
client has closed the connection (and so returns an error.)
2013-06-17 07:25:25 -07:00
Eric House
1928554444 add asserts and clarifying comments 2013-06-17 06:54:38 -07:00
Eric House
7ce939f5c0 pass rather than hard-coding column name 2013-06-17 06:48:22 -07:00
Eric House
5da4936e43 report unexpected received packet size as an error 2013-06-17 06:42:21 -07:00
Eric House
e89fd3e8cc fix names to make units clear -- no code change 2013-06-10 06:38:42 -07:00
Eric House
c8f584dad2 don't listen on stdin if it's been closed 2013-06-10 06:15:36 -07:00
Eric House
e6488ff8c1 save space by shortening column names 2013-06-07 20:54:57 -07:00
Eric House
bf767577e3 msg64 will not always be set! Don't delete in that case. 2013-06-07 20:54:16 -07:00
Eric House
ed1e2a0812 fix formatting -- no code change 2013-06-05 21:14:51 -07:00
Eric House
00be532c96 fix formatting -- no code change 2013-06-05 21:11:37 -07:00
Eric House
6a9c0bf5d4 up version strings for next beta 2013-06-05 20:56:59 -07:00
Eric House
6b2ec193c2 cleanup 2013-06-05 08:04:00 -07:00
Eric House
280154a12c fix bad message when dict deleted by using the right rowid variable -- duh. 2013-06-05 08:03:13 -07:00
Eric House
f9676f5ffd set focusableInTouchMode on wordlist browser's layout. This is the
only way I can find to prevent the soft keyboard from coming up on
launch.
2013-06-05 07:34:31 -07:00
Eric House
ca8a37d822 move less-used buttons to right where they may be off-screen 2013-06-05 07:33:31 -07:00
Eric House
c6d06e5fa4 bring up new popup on tap rather than long-tap of browser button to
make it easier to discover.  Long-tap now opens the wordlist directly.
2013-06-05 06:59:08 -07:00
Eric House
bb130a9b9f new feature: long-click on wordlist button in BoardActivity brings up
a popup of all wordlists so you can browse one that's not in use,
e.g. to see if a word's legal in a larger wordlist.  Uses PopupMenu
class that was introduced in API 11, so 11's the target now and the
interface trick is used to prevent crashing on older devices (which
get a "needs newer Android" alert.)
2013-06-04 07:29:40 -07:00
Eric House
c32df1a487 use alpha to dim pending score rather than mucking with the rgb values 2013-06-01 08:10:03 -07:00
Eric House
9d40930fff pass new param into java, and when it's not the player's turn draw
pending points with his color at half-intensity.
2013-05-31 07:40:42 -07:00
Eric House
d41c1a4ca8 add new param so pending text can be drawn differently when it's not
the player's turn.
2013-05-30 07:17:13 -07:00
Eric House
8e8b4755b3 bring in changes from gtk_multigame to remove assertion fail when
connname gets changed by relay due to failure to ack it (which happens
when a large number of games is being run in a test.)
2013-05-30 06:48:29 -07:00
Eric House
8b888b8d96 fix compile errors due to stricter compiler post debian upgrade 2013-05-29 06:36:54 -07:00
Eric House
72a78100b1 fix compile error in non-debug version 2013-05-27 16:18:11 -07:00
Eric House
eccd31472f fix crash when udp not in use 2013-05-27 16:17:58 -07:00
Eric House
ffa983db94 use pipe to quit from signal handler since calling g_main_loop_quit()
doesn't work with more recent glib versions (and has always been a bad idea)
2013-05-24 21:19:20 -07:00
Eric House
a1b6641067 catch and ignore exception from malformed user-provided url 2013-05-24 21:17:22 -07:00
Eric House
f4c18a78ac clear game-launched flag in onNewIntent so that one game can replace
another via a Notification- or other-sourced Intent
2013-05-23 07:51:03 -07:00
Eric House
6c7cf1fa97 fix bug where two quick taps on a game will launch two copies (or
crash a slower device) by tracking whether an open's in progress
2013-05-23 06:48:40 -07:00
Eric House
cc2ecdc5b2 two post-conflicted-merge changes git didn't pick up for some reason (emacs?) 2013-05-22 07:03:08 -07:00
Eric House
31c443e4b1 Merge branch 'android_branch' into gtk_multigame
Conflicts:
	xwords4/android/XWords4/src/org/eehouse/android/xw4/GCMIntentService.java
	xwords4/android/XWords4/src/org/eehouse/android/xw4/RelayService.java
2013-05-22 07:01:08 -07:00
Eric House
2e30ccd4c6 expect array of message bodies rather than just one 2013-05-22 06:45:34 -07:00
Eric House
120748416b handle GCM messages containing data, changing clientVers so server
knows we can.  And send to relay in AsyncTask rather than UI thread.
2013-05-22 06:44:01 -07:00
Eric House
076b1b7543 remove logging 2013-05-22 06:44:01 -07:00
Eric House
78b3a91925 format: send array of message bodies rather than just one 2013-05-22 06:40:02 -07:00
Eric House
11709b21bd remove redundant parameters 2013-05-22 05:51:33 -07:00
Eric House
7d81083d7d send using old message format to old clients, new to new 2013-05-22 05:39:20 -07:00
Eric House
9b5607d829 send message along with GCM notification that ... there's a message.
Should eventually allow GCM-aware clients to skip connecting on
launch, and for now to make them a tiny bit snappier.
2013-05-21 19:35:34 -07:00
Eric House
2a2157b504 add DICTNOTE 2013-05-21 06:58:53 -07:00
Eric House
b58fe30ecc add synonyms to tile counts/values summary 2013-05-14 22:00:22 -07:00
Eric House
4d96b695e6 toward having commandline params show up as defaults in new game dialog 2013-05-10 07:19:32 -07:00
Eric House
9e67dda5a9 make use of base-64 encoding runtime-configurable 2013-05-09 22:16:48 -07:00
Eric House
4470a9e66c clean up a couple of debug-only strings 2013-05-09 22:15:38 -07:00
Eric House
f9f7874a55 make use of base-64 encoding runtime-configurable 2013-05-09 21:53:54 -07:00
Eric House
79a212c985 don't put up dict change dialog (which blocks) unless names are
different.
2013-05-09 21:37:58 -07:00
Eric House
d74814a806 part of previous (merge) commit that got left out -- files not saved. 2013-05-09 06:33:19 -07:00
Eric House
7d8cddb31f Merge branch 'android_branch' into gtk_multigame
Conflicts:
	xwords4/linux/gtkmain.c
	xwords4/linux/linuxmain.c
	xwords4/relay/xwrelay.cpp
2013-05-08 07:37:55 -07:00
Eric House
3e9bb1c6b9 fix leak: dispose struct before overwriting it 2013-05-08 06:38:52 -07:00
Eric House
66d42fe5f2 fix a couple of leaks 2013-05-07 07:07:10 -07:00
Eric House
407a82322c modify to server the latest beta for non-debug users 2013-05-02 06:58:36 -07:00
Eric House
9cfc6be82c fix for when wordlist not found 2013-05-02 06:52:12 -07:00
Eric House
5a026ffda3 merge android_wordlists (local branch) 2013-05-01 06:39:31 -07:00
Eric House
c31a1d98df update changes list 2013-05-01 06:33:22 -07:00
Eric House
4e2f5b3b14 add (commented-out) debug function to print list of extras in an intent 2013-05-01 06:26:02 -07:00
Eric House
a62f9d4097 Fix but with missing-dict SMS invites: add missing intent extra. 2013-04-30 21:20:59 -07:00
Eric House
c8f447171a Stop SMS service if play via SMS is disabled by user 2013-04-29 07:40:42 -07:00
Eric House
e4eb867717 add new flag bit to built-in wordlists 2013-04-20 19:46:52 -07:00
Eric House
541fc546ab remove that bit from flags -- since we already do the right thing for it. 2013-04-20 19:46:35 -07:00
Eric House
519ba71e87 add new bit indicating that wordlist has synonyms 2013-04-20 19:45:54 -07:00
Eric House
87e21cd204 fix type in English string 2013-04-18 19:46:12 -07:00
Eric House
81ce47fe5e Add Brazilian Portuguese translation. 2013-04-18 19:44:52 -07:00
Eric House
bc1c8d0769 add variants of multi-letter "specials" that mix case 2013-04-18 19:42:02 -07:00
Eric House
75d11d7d95 Revert "First cut at Brazilian Portuguese localization, unmodified from what"
This reverts commit 6b43d29ff1.

Belongs on the main branch as it won't be part of the next beta.
2013-04-18 19:24:19 -07:00
Eric House
dbc8605d1d remove removed change from changelist 2013-04-18 19:19:41 -07:00
Eric House
0d260155ee Revert "On some devices a downloaded wordlist shows up twice, once in Internal"
This reverts commit 685971532a.

No way to test this right now....
2013-04-18 19:12:49 -07:00
Eric House
e4f52c5678 add assert and comment explaining why non-utf-8-aware hack is safe. 2013-04-18 07:15:14 -07:00
Eric House
cdcfef4e18 fix type in English string 2013-04-17 20:03:14 -07:00
Eric House
6b43d29ff1 First cut at Brazilian Portuguese localization, unmodified from what
the translator provided.
2013-04-17 19:59:41 -07:00
Eric House
7288e8c6dc up version/changes for next release 2013-04-16 07:14:03 -07:00
Eric House
685971532a On some devices a downloaded wordlist shows up twice, once in Internal
and again in Downloads.  I assume that's because the two directories
are the same, so fix by tracking directories that have been checked
and not checking the same twice.
2013-04-16 06:56:53 -07:00
Eric House
1614ebd551 new versions of builtin English wordlists with lowercase synonyms for all
letters ('a' for 'A', etc.)
2013-04-14 15:54:39 -07:00
Eric House
c8332a9665 load synonyms for specials correctly. So now Catalan works: wordlists
load, and search for "l-l" will find "L·L".
2013-04-14 15:45:23 -07:00
Eric House
cae631eeb0 handle synonyms in non-special tiles for Android: wordlists load and
display, and searching using lower case works.  Specials (e.g. Catalan
changes) not yet supported.
2013-04-14 11:58:11 -07:00
Eric House
2873d08974 fix memory leak 2013-04-13 16:49:20 -07:00
Eric House
195e6bfad3 add option to dump an .xwd file, meant to replace dawg2dict.pl which
is becoming a pain to maintain.
2013-04-09 21:10:40 -07:00
Eric House
5912b76cb8 add option to dump an .xwd file, meant to replace dawg2dict.pl which
is becoming a pain to maintain.
2013-04-09 21:05:35 -07:00
Eric House
07cfdad699 fix to support synonyms within specials too -- for linux only so far.
Seems to work, though the dawg2dict.pl script is broken.
2013-04-09 07:43:04 -07:00
Eric House
3a628f4375 load new-format dict into linux client, display default faces
correctly, and search using alternate as well as default faces.  Next:
support for alternate specials.
2013-04-06 11:43:57 -07:00
Eric House
03f175dd8f handle new format for tile face 'A|a', meaning "A" or "a", as far as
being able to compile a wordlist and take it apart using dawg2dict.
None of the compiled clients can handle this format yet.
2013-04-06 10:28:22 -07:00
Eric House
a9d94e2977 list changes for b59 2013-04-06 08:24:30 -07:00
Eric House
43f4e802b6 up copyright year -- it's 2013 now 2013-04-06 08:18:27 -07:00
Eric House
388d37e4ee deal with more than one connected device/emulator 2013-04-06 08:16:57 -07:00
Eric House
51d72447c6 fix crash when wordlist winds up in downloads dir (for reasons I don't
understand: I can't reproduce the crash but for at least one
correspondent it happens every time.)
2013-04-06 08:05:39 -07:00
Eric House
86b39b8340 up version strings and number 2013-04-06 08:04:05 -07:00
Eric House
567cd2913a Merge remote-tracking branch 'origin/android_branch' into android_branch 2013-04-06 05:32:10 -07:00
Eric House
cc7220fa85 first cut at makefile for new Brazillian Portugese wordlist 2013-04-04 07:18:36 -07:00
Eric House
bd1a909321 assert, in debug-only code, that saved moves alternate between players
and are ordered.  I've seen games in the wild with three moves in a
row by the same player and want to catch this in testing.
2013-03-01 07:49:26 -08:00
Eric House
2bfda1b56d function to print StackMoveType 2013-02-22 21:34:53 -08:00
Eric House
168ebeeb5b fix variable name misspelling 2013-02-22 21:10:46 -08:00