Commit Graph

298 Commits

Author SHA1 Message Date
Moxie Marlinspike 4e8ca603fe Calculate bytes per second in network gauges
// FREEBIE
2016-07-21 17:54:01 -07:00
Moxie Marlinspike ef25503d58 Fix device controller test
// FREEBIE
2016-06-23 16:11:38 -07:00
Moxie Marlinspike 5c4c00bd88 Track end to end message delivery time
// FREEBIE
2016-06-23 11:56:40 -07:00
Moxie Marlinspike 52d1a103aa Bump up device limit to 4
// FREEBIE
2016-06-23 11:56:18 -07:00
Moxie Marlinspike 8b5106adc7 Support for Twilio MessageServices
// FREEBIE
2016-06-12 13:50:13 -07:00
Moxie Marlinspike 804d4320d7 Metric for fresh user vs reregistration
// FREEBIE
2016-04-13 21:03:34 -07:00
Moxie Marlinspike 950bc05d62 Add excessive exception handling in feedback handler
// FREEBIE
2016-04-12 08:48:31 -07:00
Moxie Marlinspike f9acd6a66b Update device enabled criteria
// FREEBIE
2016-04-12 08:48:22 -07:00
Moxie Marlinspike d7df99e960 Break down activity by android/ios
// FREEBIE
2016-03-17 16:13:35 -07:00
Moxie Marlinspike a297d03db5 Add periodic stats command
// FREEBIE
2016-03-17 15:24:49 -07:00
Moxie Marlinspike 9d3d9d1390 Don't assume that histograms are durations
// FREEBIE
2016-03-16 20:31:37 -07:00
Moxie Marlinspike d95ca5f9e4 Mark accounts as inactive if no device has been seen for a year.
// FREEBIE
2016-03-11 16:02:55 -08:00
Moxie Marlinspike d8a758211f Make push sender queue depth configurable or disable-able.
// FREEBIE
2016-03-06 13:58:30 -08:00
Moxie Marlinspike fb705eee23 Switch PushSender queue depth metrics to gauge
// FREEBIE
2016-02-02 15:21:15 -08:00
Moxie Marlinspike 1deb3ae67f Asynchronous processing queue for incoming messages
// FREEBIE
2016-02-02 14:42:47 -08:00
Moxie Marlinspike a8b5cb23fe Reduce pending max queue size to 1000 messages
// FREEBIE
2016-01-20 18:41:01 -08:00
Moxie Marlinspike 82f88d04ad Fuzz GCM write timestmap by 10 seconds
// FREEBIE
2015-12-21 16:59:54 -08:00
Moxie Marlinspike 7b48f10cc9 Filter message deletes by device
// FREEBIE
2015-12-21 12:35:45 -08:00
Moxie Marlinspike fb5e0242d0 Adjust requeue message logic to avoid redis assumptions
// FREEBIE
2015-12-04 11:41:23 -08:00
Moxie Marlinspike 747b2dc7c5 Jedis sanity checks
// FREEBIE
2015-12-03 16:40:04 -08:00
Moxie Marlinspike a211f6aed9 Delete pending messages for an unlinked device
// FREEBIE
2015-12-02 15:06:09 -08:00
Moxie Marlinspike 0bc494245d Fix for broken string format
// FREEBIE
2015-12-01 11:54:50 -08:00
Frederic Jacobs b31a88043e Adding Signal SMS verification strings.
- Changes the voice verification string.
- Keeps the TextSecure SMS String for matching in Signal for Android.
- Changes TextSecure to Signal for iOS, adding tap to verify link.
- Added test for iOS query parameter.
2015-12-01 11:54:14 -08:00
Moxie Marlinspike 85509c6d8b Don't need to send payload GCM messages any longer.
// FREEBIE
2015-12-01 10:58:43 -08:00
Moxie Marlinspike 51990d0b33 Lower chunk size
// FREEBIE
2015-11-12 10:42:16 -08:00
Moxie Marlinspike faa0630851 Fix up MX numbers for SMS delivery
// FREEBIE
2015-11-09 17:18:59 -08:00
Moxie Marlinspike 15ddde1df4 Adjust log levels on delivery receipt failure.
// FREEBIE
2015-11-04 11:20:09 -08:00
Moxie Marlinspike f2a9de3ba8 Retry serializable transaction.
// FREEBIE
2015-11-04 11:19:54 -08:00
Moxie Marlinspike 6368b9383a Stripe SMS/Vox across multiple numbers
// FREEBIE
2015-11-03 08:12:18 -08:00
Moxie Marlinspike c9e0339a30 Specify media type on attributes put
// FREEBIE
2015-09-30 17:53:09 -07:00
Moxie Marlinspike 2fe9f3effa Generate as well as consume auth tokens. Also user agents.
// FREEBIE
2015-09-21 14:09:03 -07:00
Moxie Marlinspike 8b941ddd33 Make the messagedb a bounded queue at 5000 msgs/device
// FREEBIE
2015-08-18 11:10:42 -07:00
Moxie Marlinspike 2902ea6689 Get rid of deprecated API
// FREEBIE
2015-08-18 11:10:34 -07:00
Moxie Marlinspike 5ccbf355bd Chunk sending pending message queues > a chunk size.
// FREEBIE
2015-08-17 17:12:36 -07:00
Moxie Marlinspike 62d8f635b0 Track voice support on TS server.
// FREEBIE
2015-08-13 11:43:49 -07:00
Moxie Marlinspike 4c3aae63d3 Trim old messages
// FREEBIE
2015-08-11 20:15:05 -07:00
Moxie Marlinspike 8f94aa0c0d Actually vacuum messages
// FREEBIE
2015-08-11 20:00:11 -07:00
Moxie Marlinspike 0370306bb6 Map 411 to 413
// FREEBIE
2015-08-01 10:09:15 -07:00
Moxie Marlinspike a3fd08b7ef Add gauge for reporting number of open fds
// FREEBIE
2015-07-30 16:55:19 -07:00
Moxie Marlinspike 83a9e36ef1 Update logging levels.
// FREEBIE
2015-07-30 16:39:55 -07:00
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