Eric House
4de894627a
fix infinite loop -- duh
2014-04-18 06:01:03 -07:00
Eric House
0e4f24dfe9
use fixed string for model rather than clearing it
2014-04-17 08:24:09 -07:00
Eric House
6f0b5c1bea
empty the model string if the client version's lower than what I'm
...
about to release and there's non-ascii stuff in it.
2014-04-17 08:13:01 -07:00
Eric House
f05b1e0525
log model -- can remove later
2014-04-17 07:44:32 -07:00
Eric House
27a5990283
log out-of-date token
2014-02-24 08:00:52 -08:00
Eric House
b43855a313
fix curses build for 64bit compile and to use common layout (meaning
...
tray is now under the board unstead of to the right). Works on 64-bit
system at least for non-networked games.
2014-01-05 13:04:59 -08:00
Eric House
b3723897d5
to prevent duplicate UDP packets (I hope), bind the UDP socket to a
...
single ip address rather than INADDR_ANY. Get that address at runtime
for an interface provided in the config file.
2013-09-30 23:40:12 -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
657d0d2b1f
-l - means log to stderr
2013-09-15 10:04:45 -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
c115752852
supply in linux client, and look for and store on relay, os version
2013-09-07 16:17:31 -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
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
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
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
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
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
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
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
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
b49486fc3f
cleanup: use constant and add/use isUDP()
2013-08-07 21:31:10 -07:00
Eric House
6dbabaa319
cleanup
2013-08-07 21:02:47 -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
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
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
9951064439
fetch all stored messages at once to reduce number of DB calls made.
2013-07-25 06:37:53 -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
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
48a2567edf
log contents of incoming udp packets
2013-07-22 06:06:39 -07:00
Eric House
464ef49018
add new send_via_udp that may be able to check for address validity
2013-07-20 10:37:38 -07:00
Eric House
61992943dd
Add mapping from address to devid in order to catch when an address is
...
reused. That required making AddrUnion a class rather than a simple union.
2013-07-20 08:06:14 -07:00
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
d436232800
correctly log b64 dump of return address at record and use sites
2013-07-17 06:38:25 -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