Commit graph

826 commits

Author SHA1 Message Date
Eric House
bda545fc8e comment out iface
On Linode anyway the relay's unreachable from python scripts unless I do
this, and it seems harmless in local tests too.
2017-12-14 06:39:40 -08:00
Eric House
afda9ce446 add assertion 2017-12-09 13:30:25 -08:00
Eric House
530e0181e5 list open sockets 2017-12-09 13:30:08 -08:00
Eric House
811c8f535e add socket refcounting
AddrInfo now has ref()/unref() and keeps a global socket->refcount map
(since actual AddrInfo instances come and go.) When the
count drops to 0, the existing CloseSocket() method is called. This
seems to fix a bunch of race conditions that had a socket being closed
and reused while old code was still expecting to write to the device
attached to the socket the first time (along with lots of calls to close()
already-closed sockets, attempts to write() to closed sockets, etc.)
2017-12-07 07:18:09 -08:00
Eric House
dbf38f7759 don't use mlock in config; don't close socket
Use of mutex logging recurses infinitely if config uses mlock, so remove
that. And don't free sockets after handling their messages as they may
be in use elsewhere. This likely introduces a leak of sockets.
2017-12-06 19:11:32 -08:00
Eric House
243eb213bb make reply messages a param within result
Makes it easier to debug by adding stuff on the relay end
2017-12-06 18:57:48 -08:00
Eric House
70dea02efc cleanup; fix possible socket drop
Haven't seen it happen, but I think there was a bug that could have led
to all the sockets coming back as ready from poll() being dropped. Fixed
that and added/cleaned up some logging.
2017-12-04 20:40:44 -08:00
Eric House
d5c4ecabce rename class; add some logging
Rename class that's no longer just about UDP as it began. Add a bit of
logging. This commit *should* not change behavior at all.
2017-12-03 19:18:36 -08:00
Eric House
fd5549014a fix logging 2017-12-03 18:52:06 -08:00
Eric House
e485af925f log milliseconds: seconds not enough. 2017-12-03 16:07:30 -08:00
Eric House
b77ea0aaad copied from relay_via_http branch
(was at: ./xwords4/android/scripts/relay.py) This is the web API clients
can use to talk to the relay.
2017-11-12 20:29:15 -08:00
Eric House
f072c68bf9 bring in changes from relay_via_http branch
It's time to make them live so client development can use a live relay,
and all the old tests pass, so why not.
2017-11-12 20:25:29 -08:00
Eric House
c7f0090e15 fix script that makes the db
I've had it wrong all these years. Thanks Dave!
2017-10-10 20:36:36 -07:00
Eric House
37ecd81c04 change param names
about to introduce a second. This will make things clearer. No code
change here though.
2017-10-10 20:17:36 -07:00
Eric House
4717308c4d make new installs easier
Add make target and script option to install debs
2017-10-10 19:56:22 -07:00
Eric House
3e8839636e preserve hid when recreating games
When a device reconnects and there's no record for its
game (e.g. because an ISP's screwed up and the db and its host are
lost), recreate but keep the device's hid (position in the arrays
indicating mostly whether it's the inviter or invitee.) Tested by
running the linux scripts and deleting the games table mid-way
through, but not yet tested with android devices.
2017-10-07 10:14:27 -07:00
Eric House
6f0fb66a0d fix three-year-old huuuuge memory leak
Hadn't run Valgrind in a while. There's another too, but much smaller
and harder to track down.
2017-06-07 08:07:42 -07:00
Eric House
f06e7bdd98 don't drop duplicate reconnect
When Android client is backgrounded with a game playing (BoardActivity
on top) then brought to front again it fails to reconnect to relay
because it didn't disconnect and the relay thinks it's still there. The
right fix is in making the java code do the right thing (complete
disconnect), but it seems harmless to just honor the reconnect in this
case. Doesn't even cause leaks, per valgrind.
2017-06-06 06:27:58 -07:00
Eric House
9cd76d887d fix weird double-bang thing 2016-11-09 07:45:39 -08:00
Eric House
bba16c481e improve game query script to filter on connnames and clarify filter param 2016-06-12 18:30:19 -07:00
Eric House
3bff4c070a fix compiler warning 2016-01-21 06:25:19 -08:00
Eric House
2a3bd60740 supply missing param 2015-12-08 07:15:26 -08:00
Eric House
d468866a01 no more variables called socket; all are "sock" now. 2015-11-20 23:15:04 -08:00
Eric House
6800c2afe5 Merge branch 'android_branch' into relay_noconn
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
2015-07-11 08:27:24 -07:00
Eric House
67f4e4475c manual bring-over of relay changes for invite support 2015-07-11 08:08:22 -07:00
Relay User
9c7213e42b Make it possible to launch relay early in machine boot cycle before
postgres is running (e.g. from a @reboot shortcut in a crontab) by
having it wait, sleeping periodically, until a connection is
available. Requires new flag be passed into main.
2015-07-11 07:04:24 -07:00
Relay User
8f863f0369 Make it possible to launch relay early in machine boot cycle before
postgres is running (e.g. from a @reboot shortcut in a crontab) by
having it wait, sleeping periodically, until a connection is
available. Requires new flag be passed into main.
2015-07-11 07:04:24 -07:00
Relay User
d605686fd6 add teaser to gcm message (matches android client change) 2015-07-11 07:04:24 -07:00
Eric House
dba86a657f add and handle new INVITE message types. (This can safely be added to shipping relay.) 2015-07-10 23:25:06 -07:00
Eric House
0f33228155 get rematch working on linux, at least for two-device games. (Handling
the case where one of several guests wants to rematch is a hard
problem for later.) Requires passing old-style relayIDs (connname plus
device index) when devIDs aren't available, which they may not always
be.
2015-07-06 20:28:16 -07:00
Eric House
6d768972db fix compile warning. (Not really tested...it's a test app) 2015-07-01 06:35:47 -07:00
Eric House
0102cde2c3 add and handle new INVITE message types. (This can safely be added to shipping relay.) 2015-07-01 06:34:57 -07:00
Eric House
d096b8e8a2 cleanup -- no code change 2015-06-26 06:10:47 -07:00
Eric House
24de5cc486 change order, showing newest first 2015-02-23 18:24:01 -08:00
Eric House
6fe0940187 don't log normal case as error 2015-02-20 07:52:19 -08:00
Eric House
861aeeb53a don't crash when ctrl-d hit in console 2015-01-07 07:22:45 -08:00
Eric House
d81f022c78 Merge branch 'android_branch' into android_multi2
Conflicts:
	xwords4/linux/scripts/discon_ok2.sh
2014-12-15 16:48:10 -08:00
Eric House
4123de3560 merge android branch heads 2014-12-15 16:44:32 -08:00
Eric House
26b01acf23 fix crash on duplicate connect packet: drop it, but keep the
connection alive if the duplicated packet set up addressing correctly.
2014-12-15 16:42:34 -08:00
Eric House
92fd048eef signature change: return void instead of always returning true 2014-12-15 15:33:12 -08:00
Eric House
ddc9f7994c Merge remote-tracking branch 'sf/android_branch' into android_multi2
Conflicts:
	xwords4/relay/crefmgr.h
2014-12-11 06:22:17 -08:00
Eric House
bf53481aad log unexpected condition rather than asserting 2014-12-11 06:18:30 -08:00
Eric House
16c4e74e04 ignore client index of 0, since it means the device needs a slot
assigned.
2014-12-10 08:04:56 -08:00
Eric House
2e9c033a29 If client provides its index, honor that when placing it in game. This
allows a game where indices have already been established over some
transport other than relay to start using the relay mid-game.
2014-12-10 08:03:39 -08:00
Eric House
39b0d40e41 add local variable to prevent some dereferencing 2014-12-10 08:02:20 -08:00
Eric House
68441c60f6 add local variable to prevent some dereferencing 2014-12-10 07:48:38 -08:00
Eric House
c70fcf64a7 ignore client index of 0, since it means the device needs a slot
assigned.
2014-12-08 06:22:30 -08:00
Eric House
a80293ba82 include timestamp in "new day" post-crash line 2014-12-05 06:39:10 -08:00
Eric House
b8660470f7 include timestamp in "new day" post-crash line 2014-12-05 06:35:31 -08:00
Eric House
9ba9d258f3 If client provides its index, honor that when placing it in game. This
allows a game where indices have already been established over some
transport other than relay to start using the relay mid-game.
2014-12-04 06:03:42 -08:00