Eric House
9f38ded122
new script
2013-09-27 05:46:06 -07:00
Eric House
4202f24091
don't allow reregister with a RELAY_ID (a client bug)
2013-09-26 08:37:21 -07:00
Eric House
c1f94681bb
when a message sent via udp from cref isn't acked, add it to stored
...
messages so gcm loop can pick it up.
2013-09-26 07:14:24 -07:00
Eric House
63067dc374
oops: the test is equality with 'epoch'
2013-09-25 07:33:41 -07:00
Eric House
31fa2ea442
turn on feature where sent messages are marked rather than deleted.
...
Make default 'epoch' rather than NULL so constraint will work to
prevent duplicates, and fix insertion SQL to not violate constraint.
2013-09-25 06:38:10 -07:00
Eric House
fb59aa4907
use epoch rather than null as default so constraint will work
2013-09-24 08:37:18 -07:00
Eric House
8862c5f750
move include file up
2013-09-24 08:37:18 -07:00
Eric House
a4de87cfeb
fix constraint, and add stime to it
2013-09-24 08:37:18 -07:00
Eric House
f59a7db85d
update to work with either udp or tcp-sourced stored messages
2013-09-23 07:18:00 -07:00
Eric House
e1a5a2d53a
remove excess logging
2013-09-22 20:35:32 -07:00
Eric House
2e6d49303b
remove logging around hasNoMessages stuff -- too much
2013-09-20 04:54:05 -07:00
Eric House
e12069b45d
fix to work with devids and devtypes being arrays
2013-09-19 06:38:37 -07:00
Eric House
5d49b9b5d6
oops: don't default to clearing relayid
2013-09-18 08:04:12 -07:00
Eric House
9650000fce
add filter option -- sometimes want to see devices not in a current game.
2013-09-18 07:03:25 -07:00
Eric House
af44c6d190
only append to mtimes when appending a new devid
2013-09-15 12:54:47 -07:00
Eric House
b67ea7293d
add mtimes, remove mtime, for devices to track each time the devid
...
changes. Eventually; now it's updated too often.
2013-09-15 12:46:40 -07:00
Eric House
b0e2975994
show specific columns from devices table rather than *
2013-09-15 10:16:11 -07:00
Eric House
c212c0e367
add in-memory cacheing of messageless-connname/hid combos.
2013-09-15 10:04:46 -07:00
Eric House
657d0d2b1f
-l - means log to stderr
2013-09-15 10:04:45 -07:00
Eric House
de1f1cf681
in devices table, replace devid and devtype with array so can track
...
history if/as they change; remove rrcount as no longer needed.
2013-09-15 09:59:51 -07:00
Eric House
2629c07256
Address problem with devids (e.g. GCM): until now when you got a new
...
devid you tossed your relayID and reregistered. Which meant any
existing messages meant for your relayID were orphaned, and any open
games didn't know who they belonged to until you reconnected to them
with your new relayID. So: modify the UDP protocol (though not on
Android yet) to include both relayID and devid with registration, with
one or the other an empty string if not present or not changed from
earlier. I can't fix existing clients that are dropping their
relayIDs, but when one does a re-connect without a relayID I can look
it up from the existing game record, then reuse it rather than issue a
new one. Better than nothing -- and that protocol will be obsolete
soon anyway.
2013-09-14 21:06:14 -07:00
Eric House
2cad611ec4
get postgres port from config; send connname only if present
2013-09-11 07:42:14 -07:00
Eric House
c115752852
supply in linux client, and look for and store on relay, os version
2013-09-07 16:17:31 -07:00
Eric House
5b7a039d78
cleanup
2013-09-05 07:53:47 -07:00
Eric House
48e0afc589
add comment
2013-09-03 06:54:42 -07:00
Eric House
032f8c1f99
add ctrl port command to post UPGRADE message to clients
2013-09-03 06:52:02 -07:00
Eric House
8da0b73744
replace string_printf() with new class derived from std::string with
...
printf() method.
2013-09-02 13:17:42 -07:00
Eric House
a95d620b09
Make ack timeout settable from ctrl port; add ctrl facility to print
...
and nack outstanding acks.
2013-08-31 08:30:25 -07:00
Eric House
07c9722433
add ability to forget multiple devices
2013-08-31 08:26:44 -07:00
Eric House
d9bfc01e35
change unsigned char to uint8_t (using sed)
2013-08-29 22:55:11 -07:00
Eric House
0e6b211a76
fix treating game-targeted messages as if they were device-targeted.
...
Should probably have separate tables for the two types....
2013-08-29 06:37:22 -07:00
Eric House
b80051cc73
send dev-targeted messages pulled from db by rewriting their headers
...
with a new packetID.
2013-08-28 21:36:12 -07:00
Eric House
de125eb9a6
fix GetStoredMessages to also return messages without connnames,
...
i.e. messages to a device rather than to a game.
2013-08-28 21:29:39 -07:00
Eric House
cd2b83c9c5
type change: use vector<uint8_t> rather than string in struct for
...
retrieving data from db.
2013-08-28 20:33:42 -07:00
Eric House
c4cf8b3c3c
make 'devs print' take multiple devid args; rename args to argv everywhere.
2013-08-28 19:23:40 -07:00
Eric House
831018ed9d
oops: remove extra format specifier
2013-08-28 19:20:37 -07:00
Eric House
b5f35fab78
unescape things like '\n' in messages
2013-08-28 08:00:21 -07:00
Eric House
4207df8078
apply limit to all; list messages without connname too
2013-08-28 07:29:24 -07:00
Eric House
2e7433f2b2
change 'devs msg' command to send to a list, or to all
2013-08-28 07:29:23 -07:00
Eric House
35a09512ce
add missing params
2013-08-26 08:41:42 -07:00
Eric House
f6b34fcbbc
sleep time should depend on configured ACK expiry
2013-08-25 22:24:21 -07:00
Eric House
d3c15eb58b
remove logging
2013-08-25 22:23:52 -07:00
Eric House
063b01d3d8
change most len-as-short+bytes strings to vli+bytes; add device model
...
to what's passed for device registration, and store it in a new column
in devices table.
2013-08-25 21:20:26 -07:00
Eric House
d10e9f6235
use vlis for acks in both directions
2013-08-25 16:59:07 -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
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
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
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
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
0868a33c83
print out whether message is ACK'd or not
2013-08-18 20:52:09 -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
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
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
fde50cce32
move timeout interval into config file; cleanup
2013-08-12 07:41:48 -07:00
Eric House
787367071d
show only those devids in the visible games
2013-08-08 19:55:04 -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
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
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
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
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
54c1e0c2ab
drop bogus assert
2013-07-29 17:39:43 -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
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