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
d436232800
correctly log b64 dump of return address at record and use sites
2013-07-17 06:38:25 -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
e80fe76652
assert we don't go out of bounds on array
2013-07-15 07:33:27 -07:00
Eric House
b5714e9d14
improve API: hide special numbers inside implementation
2013-07-12 08:24:44 -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
dbf156fca7
remove excess logging
2013-07-10 08:02:28 -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
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
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
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
b53f9bc578
let Pqexec fail three times, usleeping between, before restarting with an assert
2013-07-02 07:27:31 -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
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
2da26cf8a9
cleanup/comment
2013-07-01 07:52:02 -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
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
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
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
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
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
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
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
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
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
f9f7874a55
make use of base-64 encoding runtime-configurable
2013-05-09 21:53:54 -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
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
2cfa56c2d8
update to not require incomplete gcm module
2013-01-29 18:34:33 -08:00
Eric House
9ee16adc3a
add support for udp-based delete and anonymous (relay-provided) regIDs
2013-01-29 07:38:07 -08:00
Eric House
4aee75aeab
ack all packets from clients; log acks. This is for debugging and may
...
not need to stay.
2013-01-27 21:26:27 -08:00
Eric House
302ac9d55c
script to list who's attached to the db
2013-01-27 08:30:02 -08:00
Eric House
82dc986c79
remove bad asserts and unused variable
2013-01-26 21:49:17 -08:00
Eric House
cc69901632
reset to null in loop in case exit due to exceeding retry count
2013-01-26 21:17:46 -08:00
Eric House
a9b459ea2e
log rather than assert
2013-01-26 21:16:48 -08:00
Eric House
06bc80fcc9
let's make 1 the default number of threads
2013-01-26 20:59:27 -08:00
Eric House
cba04e4b95
Merge branch 'android_branch' into gtk_multigame
...
Conflicts:
xwords4/relay/xwrelay.cpp
2013-01-26 20:20:54 -08:00
Eric House
2fdcea54f5
fix logging of sockets
2013-01-26 18:55:55 -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
336e3cd289
handle all three types of message in a single thread, punting all
...
synchronization issues to a future point where the load demands it.
2013-01-26 11:54:48 -08:00
Eric House
9e1d09648d
fix log statement
2013-01-26 11:04:20 -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
7ee402d2ae
move callback into queueelem so same queue can service udp and tcp (eventually)
2013-01-25 07:19:44 -08:00
Eric House
23b7e5a2eb
fix syntax error in query
2013-01-24 21:11:15 -08:00
Eric House
af58e7c4e1
comment
2013-01-24 20:27:56 -08:00
Eric House
084643ca82
don't include dead-game messages when fetching for devices
2013-01-24 20:27:36 -08:00
Eric House
7253cfa313
assert that map.insert() is actually doing something in those cases
...
where I expect it to.
2013-01-24 19:34:20 -08:00
Eric House
036c908b72
remove token from XWPDEV_HAVEMSGS message
2013-01-24 19:33:33 -08:00
Eric House
5f2d628855
update protocol description
2013-01-24 19:33:02 -08:00
Eric House
55c117c9fc
fix assert by nulling out variable
2013-01-24 19:25:32 -08:00
Eric House
481e50aaae
don't bother pushing do-we-ack decision out of static method
2013-01-24 19:23:05 -08:00
Eric House
c465a0bb0c
add loop to print when packets haven't been ack'd
2013-01-24 07:43:24 -08:00
Eric House
ce7cdab3f0
add msgid and acking to protocol -- maybe for debugging only.
2013-01-23 07:40:52 -08:00
Eric House
ff70e3fbc2
fix use of map.insert: check for existing key and overwrite value
2013-01-23 07:35:20 -08:00
Eric House
2d7977e4b5
fix test: unset TEXT column returns as "", not NULL.
2013-01-22 06:52:50 -08:00
Eric House
29acab1ef2
tweak display
2013-01-21 19:44:08 -08:00
Eric House
90b8f966f6
comment out unnecessary assert
2013-01-21 19:40:56 -08:00
Eric House
2744e8698c
optionally (compile-time change for now) store message data as
...
b64-encoded TEXT instead of BYTEA, which on my laptop is getting
corrupted sometimes.
2013-01-21 19:40:20 -08:00
Eric House
d374d0f3d8
optionally (compile-time change for now) store message data as
...
b64-encoded TEXT instead of BYTEA, which on my laptop is getting
corrupted sometimes.
2013-01-21 19:39:57 -08:00
Eric House
991cc8f04c
fail in main mode if udp socket not set
2013-01-20 21:03:43 -08:00
Eric House
21570ec9b4
Merge remote-tracking branch 'origin/android_branch' into gtk_multigame
2013-01-20 19:27:25 -08:00
Eric House
016b16a8b2
change relay alert message format to length-plus-string rather than
...
null-terminated for easier handling on the java end.
2013-01-20 13:06:34 -08:00
Eric House
9023440a88
reply with alert to any connection attempt when in maint mode
2013-01-20 10:03:20 -08:00
Eric House
b768d8fccc
fall through to using hard-coded maxsocks value
2013-01-20 09:22:35 -08:00
Eric House
3313c776ab
fix unregister sql error
2013-01-19 22:37:12 -08:00
Eric House
65e9789c3f
add mainentance mode, triggered by a commandline flag, that does
...
nothing but loop waiting for connections on the UDP socket and sending
them back the error message provided on the commandline.
2013-01-19 15:17:51 -08:00
Eric House
63d3f70cdf
more changes to storage and fetching of messages and to protocol so
...
presence of messages is reported on connect (as are bad relayIDs).
Now a game with a robot player in a "closed" game can continue. Once
the next set of linux-side chances is committed.
2013-01-19 14:34:04 -08:00
Eric House
99307e45a0
queue incoming packets and process them in order in a separate thread
2013-01-18 19:56:21 -08:00
Eric House
c999bbae92
always test those last-minute pre-checkin cleanups
2013-01-18 07:22:56 -08:00
Eric House
3984d85795
oops -- prev checkin didn't compile
2013-01-18 07:12:26 -08:00
Eric House
1c5fef6a38
relay improvements for UDP connection: record addresses, prepare to
...
run in separate thread, etc.
2013-01-18 07:10:47 -08:00
Eric House
932778f700
stubbed-out thread manager for udp connection
2013-01-18 06:57:57 -08:00
Eric House
7fec736947
add udp socket and protocol for use over it so that a device can
...
manage a single connection to the relay for all of its games. Works
so far to the extent that the game's playable with all boards on the
same device (with checkins about to come) as long as all boards are
open. (Client doesn't handle opening closed games yet.)
2013-01-15 18:41:17 -08:00
Eric House
5a51af489a
Merge branch 'android_branch' into gtk_multigame
2013-01-13 10:41:14 -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
33735ae7a5
Merge branch 'android_branch' into gtk_multigame
2013-01-11 20:48:44 -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
aed2b6135c
Merge branch 'android_branch' into gtk_multigame
2013-01-10 21:10:48 -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
7437a71aa6
use string_printf
2013-01-09 06:29:12 -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