Commit graph

563 commits

Author SHA1 Message Date
Eric House
eafac8724e don't stop processing message referring to multiple games as soon as
one of them can't be found.
2013-02-08 20:58:09 -08:00
Eric House
6a1b86380e add missing files from gtk_multigame branch -- to fix broken compile 2013-02-04 21:33:35 -08:00
Eric House
5e0fd89c9e update with all relay/ changes from gtk_multigame. This is what the
live relay's running anyway.
2013-02-04 06:08:39 -08:00
Eric House
7ecf57c556 increase size of buffer for incoming proxy packets, since now that I
have 50+ saved network games requests for moves are that big.  (This
is a temporary fix.)
2013-01-26 18:48:57 -08:00
Eric House
8cb0a8a7a7 fix crash on startup (as done already on gtk branch) 2013-01-26 09:23:44 -08:00
Eric House
3313c776ab fix unregister sql error 2013-01-19 22:37:12 -08:00
Eric House
dc0cfdf001 bug in recent changes: need to mark socket unused to avoid double removal 2013-01-13 10:37:47 -08:00
Eric House
98679c8363 cleanup: better encapsulation for AddrInfo 2013-01-13 10:14:06 -08:00
Eric House
c567647a8d get rid of mapping of socket->game_connection, which will not work
once UDP sockets and/or per-device (not per-game) connections come
along.  Lots of changes, most not involving code flow but a couple
that did.  So far two gtk games can connect and exchange moves.
Haven't tested reconnection or store-and-forward.
2013-01-12 16:09:24 -08:00
Eric House
b46df07237 Merge remote branch 'origin/android_branch' into android_branch 2013-01-11 20:48:04 -08:00
Eric House
6dcd7022d4 don't pass .css file in; it's ignored 2013-01-11 20:42:57 -08:00
Eric House
55514719be include thread ptr in hung threads logging; assert (restart) when hung for too long 2013-01-11 20:42:04 -08:00
Eric House
39d12d088a use usleep when waiting for cref to be available 2013-01-11 20:37:08 -08:00
Eric House
2ccc297463 make number of sockets at which we assert/reboot configurable so tests
can be done with large numbers of clients.
2013-01-10 21:10:18 -08:00
Eric House
f827bebf80 ignore .pyc file 2013-01-02 21:13:36 -08:00
Eric House
ad78129e74 changes made over the past couple of months toward tracking an
apparent thread leak.
2013-01-02 21:12:42 -08:00
Eric House
d34ac1f86d rewrite to work without gcm library (whose lack of support for some
documented params makes it impossible to try using them)
2013-01-02 21:08:10 -08:00
Eric House
e920fbcaff unregister (flag in db) devids google says are unregistered 2012-12-01 11:55:16 -08:00
Eric House
2859ec9132 stime is the name of the column in actual use 2012-12-01 10:31:55 -08:00
Eric House
618d8530f2 some changes accumulated as script was running 2012-12-01 10:27:02 -08:00
Eric House
4dddd2da42 some changes accumulated as script was running 2012-12-01 10:26:00 -08:00
Eric House
e16245d19e include new column 2012-12-01 09:33:38 -08:00
Eric House
694857dd4e add, but disable with compile flags, ability to mark sent messages
with a timestamp rather than delete them.  Plan is to experiement with
this as a way of keeping devices from sending too many identical
messages when GCM's in use -- since constraints on the msgs table will
not allow identical messages to be added.
2012-11-15 06:25:22 -08:00
Eric House
c847ec127e add and use function that does formatted printing to a std::string so
query buffers can no longer overflow.
2012-11-15 06:15:44 -08:00
Eric House
c4f5b4522e minor printing tweaks 2012-11-13 07:17:56 -08:00
Eric House
6a85661095 lots of improvements: make useful for testing with non-android clients; shelve backoff data, etc. 2012-11-10 19:31:22 -08:00
Eric House
1316ae4b67 Fix relay devid protocol to deal with case where client submits a
ID_TYPE_RELAY id that's not in the devices table (as has happened when
a device switches relay URLs during testing, but might also happen if
I have to delete an entry from the devices table.)  In that case,
return ID_TYPE_NONE to the client, which will be its clue to delete
its ID_TYPE_RELAY id and submit the platform-specific id again.

Note: android won't compile this revision thanks to util.h change
2012-11-10 15:05:44 -08:00
Eric House
f1ee77882b Send devid with RECONN as well as CONN so games present when device
upgrades can also use GCM.  Tested on relay but not device.
2012-11-09 06:54:12 -08:00
Eric House
2df4199a77 test script for messaging devices 2012-11-08 06:13:01 -08:00
Eric House
af89047969 treat an empty devID string as TYPE_NONE regardless of what the client claims. 2012-11-07 22:03:58 -08:00
Eric House
e6cd2265df fix crash: make formatParams work with empty strings 2012-11-07 21:57:18 -08:00
Eric House
83754d626e add backoff for resending for messages still not removed from msgs table 2012-11-07 08:05:45 -08:00
Eric House
45d0b2dbc8 various improvements, including printing a period on every loop when
there's no work to do.  All that remains is backoff.
2012-11-07 07:31:52 -08:00
Eric House
8516dca1cb what I really meant to check in 2012-11-07 06:23:20 -08:00
Eric House
9b48523ff3 fix to work with new DB scheme and to send json client now expects 2012-11-07 06:17:33 -08:00
Eric House
2c339ed7a5 fix to work with new devid/table scheme 2012-11-06 07:25:38 -08:00
Eric House
9ad28908bb assert enum within range 2012-11-06 07:07:14 -08:00
Eric House
03108f311a Merge branch 'android_branch' into android_gcm 2012-11-05 06:14:21 -08:00
Eric House
59937b8514 modify how devids are handled on the relay and the protocol through
which they're communicated to the device.  Device is expected to have
a platform-specific notion of ID which the relay stores in a new
devices table and indexes with a 32-bit number which is returned to
the device -- which is encouraged but not required to use it in lieu
of the longer ID in future communications.  Modify linux client and
test script to use the relay-supplied id.  Some of this is commented
out for now.
2012-11-03 10:58:01 -07:00
Eric House
fe819982da Merge remote-tracking branch 'origin/android_branch' into android_gcm 2012-10-31 07:44:16 -07:00
Eric House
3d6a170921 python script to check relay and invoke GCM to notify recipients 2012-10-31 07:20:40 -07:00
Eric House
d97c057b8c Merge branch 'android_branch' into android_gcm 2012-10-31 06:33:54 -07:00
Eric House
1cae4e9a4c increase buffer size, and test rather than assert for overflow. Fixes
crash with new large GCM devids.
2012-10-31 06:12:24 -07:00
Eric House
6014e3d76f turn on devid code and implement support in java. Untested, but should work. 2012-10-30 07:57:17 -07:00
Eric House
3469975d2a add, still disabled by compile-time flags, code to transmit device ID
(e.g. ID Android devices get via GCM) to relay and to associate it
there with messages that need to be delivered.
2012-10-30 07:01:47 -07:00
Eric House
37c698f41b fix link problem with upgrade from natty to oneiric (Ubuntu): -lpq
param must follow object file list.
2012-10-19 17:54:18 -07:00
Eric House
0f9500cea3 comment out unused param/variable 2012-10-19 17:53:15 -07:00
Eric House
72b4b02c20 improve messages display 2012-09-11 20:44:07 -07:00
Eric House
a0b564c7e8 show related messages as well 2012-09-11 19:07:16 -07:00
Eric House
45de62818b format to 80 columns -- no code change. 2012-09-09 15:49:55 -07:00
Eric House
240d308d07 move nperdevice and ntotal side-by-side 2012-05-28 11:08:43 -07:00
Eric House
49b04257d3 tweak date format 2012-03-01 18:16:04 -08:00
Eric House
840385b3ad print dates in shorter format so columns don't wrap as frequently 2012-02-27 18:28:04 -08:00
Eric House
e7a5882ed9 add a state transition lack of which fired an assert -- and that's
rare but consistent with others.
2012-02-15 18:17:26 -08:00
Eric House
bf5b6ada77 include public-room column 2012-02-07 18:59:17 -08:00
Eric House
edaef7f0a4 add new column 2012-01-26 23:02:56 -08:00
Eric House
adf49dffd7 init/take down thread local storage in constructor/destructor rather
than as static initializer (and then leaking on shutdown.)
2012-01-26 05:48:10 -08:00
Eric House
866aeb2387 change relay connect message format to include client version (meaning
of which is TBD).  When a new-version client connects, store the value
it's passed. At first this will let me track how quickly people
upgrade.  Later I can use it to let different clients have different
formats to their messages e.g. to proxy.
2012-01-26 05:43:54 -08:00
Eric House
960dfc7825 draw alternating game lines in alternating colors 2012-01-16 12:13:35 -08:00
Eric House
edd1dd95dd Merge remote branch 'origin/android_branch' into android_branch 2012-01-13 07:54:40 -08:00
Eric House
546ec8a3f4 get non-printing column out of cols array to be treated separately. 2012-01-13 07:54:11 -08:00
Eric House
2902b38405 Merge remote-tracking branch 'origin/android_branch' into android_branch
Conflicts:
	xwords4/relay/scripts/showgames.php
2012-01-13 07:50:53 -08:00
Eric House
ca49078730 improve to print each game as multiple rows, one per device. 2012-01-12 19:17:38 -08:00
Eric House
8c52836f9d php file to display state of relay's DB. This is the first and rough cut. 2012-01-12 06:30:30 -08:00
Eric House
7de8a90df3 silence compiler warning. 2012-01-11 18:29:14 -08:00
Eric House
37b333001b outline of php script to print contents of games DB 2012-01-05 20:25:34 -08:00
Eric House
caa40fa023 store most recent IP address each device has come in on. Requires new
column in db.  Not really used yet but interesting to watch....
2012-01-04 18:14:12 -08:00
Eric House
03e6db5107 remove logging 2012-01-03 18:27:25 -08:00
Eric House
cb04eb8840 finally got the socket leak: use keepalive ioctl to detect sockets
whose other ends have gone down without closing properly.
2011-12-21 18:18:30 -08:00
Eric House
166d8f8c03 log number of sockets tracked -- it's climbing on server and I need to
figure out why.  This and listening for POLLRDHUP are a start (but not
sufficient).
2011-12-15 18:41:07 -08:00
eehouse@eehouse.org
b2a3c444f3 Merge branch 'android_branch' into send_in_background 2011-12-07 19:09:36 -08:00
Andy2
0d4e839dba log an error and drop bad fwd packet rather than assert 2011-12-07 18:43:13 -08:00
Eric House
6cc3770cd1 script to trace history of one game in db by polling db and listing
changes
2011-12-07 18:37:28 -08:00
Andy2
17edc79aaf Merge branch 'android_branch' into send_in_background
Conflicts:
	xwords4/android/XWords4/src/org/eehouse/android/xw4/XWApp.java
2011-12-06 19:56:10 -08:00
Eric House
7015ae500b exit after showing usage 2011-12-06 18:50:04 -08:00
Eric House
dc42e63974 fix read_packet() logging 2011-12-02 18:55:47 -08:00
Eric House
b706486b6e get rid of stringstream: it's either buggy or I'm using it
incorrectly, but regardless postgres doesn't like random chars
terminating queries.
2011-12-02 18:32:37 -08:00
Eric House
3f5e62c9b7 remove logging 2011-12-02 18:31:05 -08:00
Eric House
c1e420f726 Merge branch 'android_branch' into send_in_background
Conflicts:
	xwords4/relay/rq.c
2011-11-29 06:45:32 -08:00
Eric House
ba5ff6cb5d fix too-small buffer. Seems I've done this before. 2011-11-28 20:35:34 -08:00
Eric House
e5a943eecb tweak output 2011-11-28 18:15:09 -08:00
Eric House
f20f9d6503 complain if conf file not found (rather than leaving relay to crash
with an assert whose cause may not be obvious)
2011-11-28 18:14:39 -08:00
Eric House
72a3ed1891 increase buffer size: longer relay name caused stack overwrite
failures.
2011-11-21 17:33:44 -08:00
Eric House
cd699ba547 close socket when done 2011-11-17 19:56:54 -08:00
Andy2
da5da3dd89 wait for connection rather than asserting immediate success so can be
started before server.
2011-10-07 18:50:37 -07:00
Andy2
28e5c39845 get rid of stringstream where it wasn't working (maybe because of user
error -- whatever); fix error check to avoid false conclusion that
query didn't work so that update of num bytes sent in background works.
2011-09-30 18:20:28 -07:00
Andy2
d9e97d2f32 reduce logging 2011-09-30 18:10:22 -07:00
Andy2
6553546642 cleanup; add logging for debugging background packets stuff. 2011-09-30 06:36:56 -07:00
Andy2
cb6a16f8f8 add ability to connect on nbs socket and use as destination for
messages fetched from relay, and to receive replies on same socket for
forwarding to relay.
2011-09-30 06:34:09 -07:00
Andy2
58be931558 remove messages after sending them if they appear to have been sent
successfully.
2011-08-17 19:52:55 -07:00
Andy2
2c26fc03e3 Track messages sent via proxy and credit nsent (accumulator) if
successful.  Previously messages sent via proxy were not counted.
2011-08-17 18:09:10 -07:00
Andy2
b511b4c455 add new RecordSent to take list of msg ids -- and use stringstream
instead of static buffer and snprintf in one case.  May make sense
elsewhere too.
2011-08-17 18:07:21 -07:00
Andy2
30145deba7 add new proxy message handler for no-conn message, and feed into
existing store-and-forward system.  With this checkin a robot-vs-robot
game plays for quite a few moves without either game every loaded into
the foreground (via a BoardActivity instance on Android), with all
moves transmitted as a result of relay checks.  One of the games
refuses to open later, however, and there are certainly other bugs.
And I'm not sure what happens when a message sent no-conn (without a
cookie ID) is received in the foreground.  But this is progress.
2011-08-16 19:41:33 -07:00
Andy2
dc273c7162 fix proxy msg handling to process more than one relayID per message.
Formerly all but the first were dropped.
2011-08-15 18:27:00 -07:00
Eric House
421e2a4ae3 fix uninitialized variable 2011-07-08 05:53:08 -07:00
eehouse@eehouse.org
ba4d898de1 Merge branch 'android_invite' of ssh://xwords.git.sourceforge.net/gitroot/xwords/xwords into android_invite 2011-07-06 19:12:16 -07:00
Andy2
86e3cc7286 When device reconnects to a dead game, just deny the connection with a
new error message rather than allow it as if it were a normal game
only to send a game-dead message after.  This solves the problem of
how device knows not to put up welcoming message or suggestion to
invite to a game that's suddenly missing players.  BUT: this change is
incompatible with existing versions and so needs to get pushed out
before the in-use relay can be upgraded to include this code.
2011-07-06 06:47:25 -07:00
Andy2
928404be50 remove unused enum 2011-07-06 06:15:25 -07:00
Eric House
a3dbde9b88 more dealing with edge cases. 2011-07-05 21:42:03 -07:00
Eric House
98a65d82ed fix crash in rare edge case 2011-07-05 21:40:13 -07:00