Moxie Marlinspike
328bb47d44
Only handle dead letters to addresses, not connection info.
...
// FREEBIE
2015-07-30 14:16:39 -07:00
Moxie Marlinspike
20dc32413f
Soften some logging.
...
// FREEBIE
2015-07-30 13:25:29 -07:00
Moxie Marlinspike
d4e618893c
Make APN fallback behave well in multi-server environments.
...
// FREEBIE
2015-07-30 13:18:22 -07:00
Moxie Marlinspike
ef2441ad82
Don't pass response objects back from federated client.
...
// FREEBIE
2015-07-29 15:18:40 -07:00
Moxie Marlinspike
ebc4570941
Fix federated client connection leak.
...
// FREEBIE
2015-07-29 12:36:03 -07:00
Moxie Marlinspike
001c81f797
Try to make JerseyClient put() include a content-length of 0.
...
// FREEBIE
2015-07-28 15:23:21 -07:00
Moxie Marlinspike
3327bf4788
Add provisioning keepalive endpoint.
...
// FREEBIE
2015-07-28 15:22:51 -07:00
Moxie Marlinspike
b328d85230
Increase timeout on push service socket.
...
// FREEBIE
2015-07-27 22:46:38 -07:00
Moxie Marlinspike
3afaa5c1e6
Fix bug with federated delivery receipts.
...
// FREEBIE
2015-07-27 22:46:18 -07:00
Moxie Marlinspike
f2c8699823
Remove unused provider.
...
// FREEBIE
2015-07-27 17:58:38 -07:00
Moxie Marlinspike
0e3a347d6b
Disable FAIL_ON_UNKNOWN_PROPERTIES for directory command.
...
// FREEBIE
2015-07-27 17:03:39 -07:00
Moxie Marlinspike
6396958a31
Bump up FederatedClient timeouts.
...
// FREEBIE
2015-07-27 16:40:42 -07:00
Moxie Marlinspike
3885ae6337
Dropwizard 9 compatibility!
...
// FREEBIE
2015-07-27 14:02:44 -07:00
Moxie Marlinspike
a5ffd47935
Gotta stub out message field for delivery receipts w/ old clients
...
// FREEBIE
2015-06-25 11:00:59 -07:00
Moxie Marlinspike
de366b976e
Ignore unknown properties from federated responses.
...
// FREEBIE
2015-06-25 08:50:10 -07:00
Moxie Marlinspike
fb411b20cc
Make adding and removing master device operations.
...
// FREEBIE
2015-06-22 11:01:08 -07:00
Moxie Marlinspike
52ce7d6935
Enhance device management API.
...
1. Put a limit on the number of registered devices per account.
2. Support removing devices.
3. Support device names and created dates.
4. Support enumerating devices.
// FREEBIE
2015-06-19 21:41:22 -07:00
Moxie Marlinspike
75ee398633
Remove server-side tracking of "supports SMS." Nobody does!
...
// FREEBIE
2015-06-17 16:45:23 -07:00
Moxie Marlinspike
53bdd946d6
Update TextSecure envelope protobuf.
...
Support envelope 'content' field.
// FREEBIE
2015-06-17 16:29:07 -07:00
Moxie Marlinspike
83078a48ab
Support for expiration on APN messages.
...
// FREEBIE
2015-06-06 21:04:08 -07:00
Moxie Marlinspike
6f67a812dc
Make APN fallback 30 seconds.
...
// FREEBIE
2015-05-27 16:25:31 -07:00
Moxie Marlinspike
6ad705b40e
Fall back straight to APN.
...
// FREEBIE
2015-05-27 16:19:56 -07:00
Moxie Marlinspike
4cb43415a1
Track APN fallback deliverability metrics.
...
// FREEBIE
2015-05-15 17:01:23 -07:00
Moxie Marlinspike
bbb09b558c
Support for APN fallback retries.
...
// FREEBIE
2015-05-15 16:04:27 -07:00
Moxie Marlinspike
6363be81e0
Support for configured test devices with hardcoded verification.
...
Closes #40
// FREEBIE
2015-05-13 15:35:59 -07:00
Moxie Marlinspike
4c1e7e7c2f
Rate limit messages on source+destination rather than just src.
...
// FREEBIE
2015-04-24 16:25:59 -07:00
Moxie Marlinspike
7cfa93f5f8
Tone down websocket logging for bad federated responses.
...
// FREEBIE
2015-04-21 19:44:02 -07:00
Moxie Marlinspike
fd8e8d1475
Catch WebApplicationException inside WebsocketConnection.
...
// FREEBIE
2015-04-16 11:33:16 -07:00
Moxie Marlinspike
7ed5eb22ec
Additional WebsocketConnection test.
...
// FREEBIE
2015-04-16 10:45:24 -07:00
Moxie Marlinspike
558c72bbb7
Make pending messages indexable by sender and timestamp.
...
Rather than just timestamp.
// FREEBIE
2015-04-15 16:43:44 -07:00
Moxie Marlinspike
db6ee8f687
Make stored messages REST accessible.
...
Add REST endpoints for retrieving and acknowledging pending
messges, beyond the WebSocket.
// FREEBIE
2015-04-15 16:19:07 -07:00
Moxie Marlinspike
e0f7ff325a
Add voip push support in communication with push server.
...
// FREEBIE
2015-03-25 15:59:52 -07:00
Moxie Marlinspike
1fcd1e33c5
Log keepalives for unsubscribed channels.
...
// FREEBIE
2015-03-24 14:13:32 -07:00
Moxie Marlinspike
843b16c1f0
Correctly serialize provisioning addresses.
...
// FREEBIE
2015-03-24 12:10:59 -07:00
Moxie Marlinspike
a58f3f0fe3
Check subscription status on websocket keepalive.
...
// FREEBIE
2015-03-24 10:48:14 -07:00
Moxie Marlinspike
e69e395b25
Support for receiving "canonical id" update events from pushserver.
...
// FREEBIE
2015-03-24 10:47:45 -07:00
Moxie Marlinspike
456164fc24
Support registering a 'voip' APN ID.
...
// FREEBIE
2015-03-24 10:47:20 -07:00
Moxie Marlinspike
2de9adb7ae
Make dispatch subscription/unsubscription synchronized.
2015-03-19 14:37:10 -07:00
Moxie Marlinspike
c7e0cc1158
Use a custom redis pubsub implementation rather than Jedis.
...
// FREEBIE
2015-03-17 13:30:51 -07:00
Moxie Marlinspike
e79861c30a
Add connection duration stats.
...
// FREEBIE
2015-03-15 10:21:24 -07:00
Moxie Marlinspike
41d30fc8dc
Resubscribe listeners when subscription link breaks.
...
// FREEBIE
2015-03-13 10:56:48 -07:00
Moxie Marlinspike
2e429c5b35
Loop voice verification prompt 3 times.
...
Fixes #18
Closes #32
// FREEBIE
2015-03-13 10:09:40 -07:00
Moxie Marlinspike
f623b24196
Fix string formatting.
...
// FREEBIE
2015-03-12 16:29:49 -07:00
Moxie Marlinspike
2d28077010
Make idle timeout 90s
...
// FREEBIE
2015-03-10 17:27:43 -07:00
Moxie Marlinspike
7011f3c3c7
Fix 500 on validation error
2015-03-10 16:00:20 -07:00
Moxie Marlinspike
1403dbd5dd
Handle pubsub callbacks from a cached thread pool.
...
...implement some belt and suspenders dead letter handling.
...implement some belt and suspenders redis pubsub queue handling.
// FREEBIE
2015-03-10 12:45:05 -07:00
Moxie Marlinspike
6ef3845a34
Don't consider empty relays present on receipt delivery.
2015-03-09 15:41:50 -07:00
Moxie Marlinspike
de2f0914f0
Reenable websocket notifications for Android.
...
// FREEBIE
2015-03-09 09:39:09 -07:00
Moxie Marlinspike
080ae0985f
Support URL-safe Base64 encoding for directory tokens.
...
// FREEBIE
2015-03-09 09:34:02 -07:00
Moxie Marlinspike
be77f2291b
Temporarily disable GCM websocket notifications.
...
Workaround for a client bug.
// FREEBIE
2015-03-07 09:24:55 -08:00
Moxie Marlinspike
0c94e3d994
Don't print the full stack trace for twilio exceptions.
2015-03-05 08:37:27 -08:00
Moxie Marlinspike
4a93658d0f
Don't consider an empty string to be a possible relay.
...
// FREEBIE
2015-03-05 08:36:56 -08:00
Moxie Marlinspike
6da19c6254
Set registration id when newly provisioned device registers.
2015-03-05 08:36:30 -08:00
Moxie Marlinspike
864675ecde
Return stored messages in order.
...
// FREEBIE
2015-02-23 12:14:41 -08:00
Moxie Marlinspike
c79d7e3e30
Close existing websocket connection for a device on new connect.
...
// FREEBIE
2015-02-23 12:11:07 -08:00
Moxie Marlinspike
aa84ab66af
Support for GCM stored messages.
...
// FREEBIE
2015-02-04 14:19:50 -08:00
Moxie Marlinspike
9170f74887
Vacuum messages now too.
...
// FREEBIE
2015-02-02 08:59:32 -08:00
Moxie Marlinspike
0928e4c035
Fix leaky bucket serialization.
...
// FREEBIE
2015-01-30 11:48:49 -08:00
Moxie Marlinspike
75aec0a8d4
Switch to Redis for all caching.
...
// FREEBIE
2015-01-29 15:37:28 -08:00
Moxie Marlinspike
1f5ee36a6b
Switch to postgresql-backed message DB.
...
// FREEBIE
2015-01-29 13:25:33 -08:00
Moxie Marlinspike
45a0b74b89
Device provisioning fixes.
...
// FREEBIE
2015-01-21 15:15:40 -08:00
Moxie Marlinspike
f7132bdbbc
Rearrange provisioning flow. Add needsMessageSync response.
...
// FREEBIE
2015-01-21 13:56:58 -08:00
Moxie Marlinspike
d2dbff173a
Adjust encoding
2015-01-19 19:03:06 -08:00
Moxie Marlinspike
79f83babb3
Support for ephemeral provisioning communication channels.
...
// FREEBIE
2015-01-18 18:09:25 -08:00
Moxie Marlinspike
32c0712715
Chunk local directory update queries.
...
// FREEBIE
2015-01-03 19:43:19 -08:00
Moxie Marlinspike
fa4e492d1c
Get rid of GSON dependency.
...
// FREEBIE
2015-01-03 18:28:51 -08:00
Moxie Marlinspike
08291502eb
Expire in-memory queues after 30 days of inactivity.
...
// FREEBIE
2015-01-03 17:24:35 -08:00
Moxie Marlinspike
1f0acd0622
Don't warn on connection timeout exceptions.
...
// FREEBIE
2015-01-03 16:51:59 -08:00
Moxie Marlinspike
dafda85c36
Move JSON reporter to Dropwizard ReporterFactory structure.
2015-01-02 23:53:40 -08:00
Moxie Marlinspike
8441fa9687
Fix bugs associated with PubSub encoding.
...
// FREEBIE
2014-12-12 12:35:05 -08:00
Moxie Marlinspike
77800dfb01
Update websocket-resources.
...
// FREEBIE
2014-12-08 09:07:45 -08:00
Moxie Marlinspike
41d15b738b
Refactor direct connect delivery pipeline and message store.
...
1) Make message store contents more memory efficient.
2) Make notification pipeline simpler and more memory efficient.
3) Don't b64 encode websocket message bodies.
// FREEBIE
2014-12-06 20:00:39 -08:00
Moxie Marlinspike
56d3c1e73f
Turn down log levels.
...
// FREEBIE
2014-12-03 11:44:40 -08:00
Moxie Marlinspike
f401f9a674
Schedule at 1min instead of 10min.
...
// FREEBIE
2014-12-03 11:35:38 -08:00
Moxie Marlinspike
30933d792b
Timestamp comparison should be the other way.
...
// FREEBIE
2014-12-03 11:33:34 -08:00
Moxie Marlinspike
905717977e
Turn down logging on metrics reporter.
...
// FREEBIE
2014-12-03 11:09:37 -08:00
Moxie Marlinspike
b802994809
Do a timestamp comparison on unregister events.
...
// FREEBIE
2014-12-03 11:09:01 -08:00
Moxie Marlinspike
cc395e914f
Fix APN push payload.
...
// FREEBIE
2014-12-01 14:01:53 -08:00
Moxie Marlinspike
f8063f8faf
Add feedback handler.
...
// FREEBIE
2014-12-01 13:27:06 -08:00
Moxie Marlinspike
3452ea29b8
Use push microservice instead of doing push directly.
...
// FREEBIE
2014-12-01 11:23:29 -08:00
Moxie Marlinspike
675b6f4b5e
Update APN payload.
...
// FREEBIE
2014-11-27 18:20:23 -08:00
Moxie Marlinspike
4fab67b0f5
Switch to production APN endpoint.
...
// FREEBIE
2014-11-27 16:25:02 -08:00
Moxie Marlinspike
2525304215
Account for websocket-resources changes.
...
// FREEBIE
2014-11-15 09:48:09 -08:00
Moxie Marlinspike
fdb35d4f77
Switch to WebSocket-Resources
...
// FREEBIE
2014-11-14 17:59:50 -08:00
Moxie Marlinspike
222c7ea641
Support for signature token based account verification.
2014-11-13 14:56:24 -08:00
Moxie Marlinspike
fd662e3401
Add vacuum command.
...
// FREEBIE
2014-11-04 19:32:35 -08:00
Moxie Marlinspike
30017371df
Reconnect even when Smack thinks it doesn't need to.
2014-10-01 14:07:12 -07:00
Moxie Marlinspike
c9a1386a55
Fix for PubSub channel.
...
1) Create channels based on numbers rather than DB row ids.
2) Ensure that stored messages are cleared at reregistration
time.
2014-07-26 20:41:25 -07:00
Moxie Marlinspike
4eb88a3e02
Server side support for delivery receipts.
2014-07-25 15:48:34 -07:00
Moxie Marlinspike
160c0bfe14
Switch from Java serialization to JSON for memcache storage.
2014-07-23 18:02:35 -07:00
Moxie Marlinspike
4cd098af1d
Switch to GCM CCS and add support for APN feedback processing.
2014-07-23 18:00:49 -07:00
Moxie Marlinspike
69de9f6684
Fix stored message retrieval.
...
// FREEBIE
2014-07-21 01:20:14 -07:00
Moxie Marlinspike
820a2f1a63
Break FederationController into V1 and V2
2014-07-16 17:24:01 -07:00
Moxie Marlinspike
6fac7614f5
Allow device to query their currently stored signed prekey.
2014-07-16 14:44:00 -07:00
Moxie Marlinspike
b724ea8d3b
Renamed 'device key' to 'signed prekey'.
2014-07-11 10:37:19 -07:00
Moxie Marlinspike
06f80c320d
Introduce V2 API for PreKey updates and requests.
...
1) A /v2/keys controller.
2) Separate wire protocol PreKey POJOs from database PreKey
objects.
3) Separate wire protocol PreKey submission and response POJOs.
4) Introduce a new update/response JSON format for /v2/keys.
2014-07-10 18:06:45 -07:00
Moxie Marlinspike
dd36c861ba
Pipeline directory update redis flow for a 10x speedup.
2014-07-10 17:31:39 -07:00
Moxie Marlinspike
405802c492
Get JSON metrics response code.
2014-06-30 12:18:16 -07:00
Moxie Marlinspike
e15f3c9d2b
By default, dont try to gunzip
2014-06-29 19:48:47 -07:00
Moxie Marlinspike
885af064c9
Support unrecognized properties.
2014-06-29 18:16:43 -07:00
Moxie Marlinspike
40529dc41f
Fix JSON reporter.
2014-06-27 19:49:21 -07:00
Moxie Marlinspike
4c543e6f06
Update websocket close codes to comply with RFC
2014-06-26 16:08:29 -07:00
Moxie Marlinspike
7a33cef27e
Updated iOS message delivery.
...
1) Use WebSockets for delivery if a client is connected.
2) If a client isn't connected, write to a redis queue and send
an APN push.
2014-06-26 16:08:29 -07:00
Moxie Marlinspike
b433b9c879
Upgrade to dropwizard 0.7.
2014-06-26 16:08:29 -07:00
Moxie Marlinspike
98d277368f
Final migration step, remove identity_key column from keys table.
2014-06-25 21:51:22 -07:00
Moxie Marlinspike
ba05e577ae
Treat account object as authoritative source for identity keys.
...
Step 3 in migration.
2014-06-25 21:26:25 -07:00
Moxie Marlinspike
0c5da1cc47
Schema migration for identity keys.
2014-06-25 18:55:26 -07:00
Moxie Marlinspike
437eb8de37
Write identity key into 'account' object.
...
This is the beginning of a migration to storing one identity
key per account, instead of the braindead duplication we're
doing now. Part one of a two-part deployment in the schema
migration process.
2014-06-25 11:34:54 -07:00
Moxie Marlinspike
f14c181840
Add host system metrics.
2014-04-12 14:14:18 -07:00
Moxie Marlinspike
6913e4dfd2
Add contacts histogram and directory controller test.
2014-04-04 20:19:12 -07:00
Moxie Marlinspike
aea3f299a0
JSON metrics reporting.
2014-03-19 14:31:31 -07:00
Moxie Marlinspike
b263f47826
Support for querying PreKey meta-information.
2014-03-18 18:46:00 -07:00
Moxie Marlinspike
a63cdc76b0
Disallow registration from clients registered on another relay.
2014-02-25 17:04:46 -08:00
Moxie Marlinspike
129e372613
Fix for federated message flow to support source IDs.
2014-02-23 18:24:48 -08:00
Moxie Marlinspike
53de38fc06
Directory update bug fix.
2014-02-21 11:34:43 -08:00
Moxie Marlinspike
67e5794722
Support DataDog Reporting.
2014-02-21 09:14:05 -08:00
Moxie Marlinspike
6aaca59020
Add registrationId tests.
2014-02-20 09:44:31 -08:00
Moxie Marlinspike
f4ecb5d7be
Add support for "registrationId" session enforcement.
2014-02-20 09:32:42 -08:00
Moxie Marlinspike
35e212a30f
Make migration more sane.
2014-02-13 16:56:08 -08:00
Moxie Marlinspike
a6463df5bb
Make WebSocket optional, disabled by default. Add tests.
2014-02-12 14:39:45 -08:00
Moxie Marlinspike
a9994ef5aa
Fix IncomingMessage requirements.
2014-02-03 11:51:22 -08:00
Moxie Marlinspike
6e0ae70f02
Fixes for some multi-device bugs.
2014-02-02 16:44:02 -08:00
Moxie Marlinspike
a0889130e5
Include device source and destination
2014-02-02 12:10:25 -08:00
Moxie Marlinspike
8e763f62f5
Require exact device id match on message deliver.
2014-01-24 16:44:31 -08:00
Moxie Marlinspike
866f8bf1ef
basic websocket test
2014-01-24 16:07:32 -08:00
Moxie Marlinspike
7bb505db4c
Refactor WebSocket support to use Redis for pubsub communication.
2014-01-24 12:33:40 -08:00
Moxie Marlinspike
519f982604
Add device limiters
2014-01-19 09:37:55 -08:00
Moxie Marlinspike
2f85cd214e
Pass non-success response codes through federated client.
2014-01-19 09:32:45 -08:00
Moxie Marlinspike
74f71fd8a6
Initial multi device support refactoring.
...
1) Store account data as a json type, which includes all
devices in a single object.
2) Simplify message delivery logic.
3) Make federated calls a pass through to standard controllers.
4) Simplify key retrieval logic.
2014-01-18 23:45:07 -08:00
Matt Corallo
6f9226dcf9
One query to get set of accounts and long-existing logic error.
2014-01-11 17:40:00 -10:00
Matt Corallo
eedaa8b3f4
Simplify message handling by returning early and throwing out maps
2014-01-11 16:30:37 -10:00
Matt Corallo
7af3c51cc4
FederateionControllerTest
2014-01-11 15:12:18 -10:00
Matt Corallo
d3830a7fd4
Split Account into Device and Account definitions.
2014-01-11 13:59:49 -10:00
Matt Corallo
ce9d3548e4
s/accountCache/deviceCache/g
2014-01-11 10:57:50 -10:00
Matt Corallo
0bd82784a0
Add missing file
2014-01-11 10:56:59 -10:00
Matt Corallo
542bf73a75
Fix some whitespace
2014-01-11 10:56:50 -10:00
Matt Corallo
bd6cf10402
Auto refactor Only: s/Account/Device/g
2014-01-11 10:56:29 -10:00
Matt Corallo
5a837d4481
Fix jersey warning
2014-01-10 22:16:34 -10:00
Matt Corallo
b08eb0df5c
Clean up whitespace/copyright/includes + minor test tweak.
2014-01-10 22:16:34 -10:00
Matt Corallo
e39016ad35
Add CORS header to allow any origin.
...
We don't need CORS protection because we don't use cookies at all
(so a different origin cant exploit cookie saving to steal our
session).
2014-01-10 22:16:34 -10:00
Matt Corallo
8c74ad073b
Rework messages API to fail if you miss some deviceIds per number
2014-01-09 15:20:06 -10:00
Matt Corallo
918ef4a7ca
s/IterablePair.Pair/Pair/
2014-01-09 12:15:35 -10:00
Matt Corallo
2473505d4e
Make first account "master" for directory purposes
2014-01-09 11:54:48 -10:00
Matt Corallo
591d26981e
Remove a DB query for resetting a number.
2014-01-09 11:01:44 -10:00
Matt Corallo
605e88d4bf
Remove all differences in url parameters.
2014-01-09 11:01:44 -10:00
Matt Corallo
48fe609d53
Fix logging init
2014-01-09 11:01:44 -10:00
Matt Corallo
a0768e219a
Fix account deletion for fetch'd messages
2014-01-09 09:26:44 -10:00
Matt Corallo
40a988c0cd
/v1/devices
2014-01-08 17:29:57 -10:00
Matt Corallo
5845d2dedd
Move /v2/keys/{number} to /v1/keys/multikeys/{number}
2014-01-08 17:14:01 -10:00
Matt Corallo
cb185a6552
Remove very overzealous protobuf change.
2014-01-08 16:45:37 -10:00