Commit graph

536 commits

Author SHA1 Message Date
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
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
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
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
e89fd3e8cc fix names to make units clear -- no code change 2013-06-10 06:38:42 -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
8b888b8d96 fix compile errors due to stricter compiler post debian upgrade 2013-05-29 06:36:54 -07:00
Eric House
eccd31472f fix crash when udp not in use 2013-05-27 16:17:58 -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
9e67dda5a9 make use of base-64 encoding runtime-configurable 2013-05-09 22:16:48 -07:00
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