Commit graph

20 commits

Author SHA1 Message Date
Michael Kirk
6a65ee6def Pull to refresh on homeview fetches messages.
This is useful when you're using censorship circumvention and unable to
receive push notifications.

// FREEBIE
2017-10-16 12:25:07 -07:00
Michael Kirk
4d8429186d Store undecrypted envelopes before doing any processing.
This lets us clear the server side queue immediately, and paves the way
for retry, give up logic.

// FREEBIE
2017-07-26 14:29:56 -04:00
Matthew Chen
c817346ee3 Fix “timer circular reference” leaks.
// FREEBIE
2017-07-07 15:17:18 -04:00
Matthew Chen
b6ddea9eae Sketch out OWSIdentityManager.
// FREEBIE
2017-06-07 10:18:16 -04:00
Michael Kirk
5b12f4afae Prevent outgoing calls started from various places unless have been seen
e.g. from contacts app

// FREEBIE
2017-06-01 12:59:34 -07:00
Michael Kirk
1a03be8ae7 Fetch safety number upon entering thread
* uniform method to get recipients in group/contact thread
  * use it to clean up markAsSeenJob

// FREEBIE
2017-05-26 09:50:09 -07:00
Michael Kirk
4b8544d5f7 ensure atomic write to wasSeen property
// FREEBIE
2017-05-24 18:01:24 -07:00
Michael Kirk
bb25d2beb6 IdentityKeyStore changes
1) Always accept keys from incoming messages

2) Block sending only if it's a recent change, or if always
   block is enabled

// FREEBIE

// FREEBIE
2017-05-24 18:01:24 -07:00
Matthew Chen
2e36f41838 Add support for manually activating censorship circumvention.
// FREEBIE
2017-05-22 20:34:25 -04:00
Michael Kirk
d7c7fff679 Fix some compiler warnings
* explicit optional usage in strings
* remove some unused StringUtil code
* swiftlint affected files
* more concise optional casting (and avoid a `!`)

Compiler warnings: 343 -> 318

(Actually most of these are in external libs, but 115 remain in Signal/SSK)

// FREEBIE
2017-05-05 14:26:29 -04:00
Matthew Chen
1558d8c6c5 Avoid lost messages by acknowledges message receipt after the message is processed.
// FREEBIE
2017-04-17 16:07:03 -04:00
Matthew Chen
effa885614 Rework socket manager.
// FREEBIE
2017-04-12 11:59:45 -04:00
Michael Kirk
6ba5e5cc6b Clean up session-reset logging
// FREEBIE
2017-04-07 10:19:40 -04:00
Michael Kirk
d8ae941736 Delete session *before* sending EndSession message
Typically we're sending an EndSession message because our session has
diverged from the remote party's session. So if we send an EndSession
message, but decrypt it with our old out-of-sync session, how can we
expect them to be able to decrypt it?

Instead, by deleting the existing sessions, we'll fetch a new PreKey,
and start fresh with the remote side.

// FREEBIE
2017-04-06 21:09:56 -04:00
Michael Kirk
033591aeca Remove unused code
// FREEBIE
2017-04-06 21:09:56 -04:00
Michael Kirk
7f239c8040 [SSK] + Enforce singleton access for MessagesManager and MessageSender
// FREEBIE
2017-03-31 10:41:46 -04:00
Michael Kirk
ba4569f5bd delete unused code
//FREEBIE
2016-12-21 14:11:09 -06:00
Michael Kirk
ddba843d44 Censorship circumvention in Egypt and UAE
* domain fronting
* non-websocket message fetching

// FREEBIE
2016-12-21 10:04:23 -06:00
Michael Kirk
28a2a4610c Fix compiler warnings.
// FREEBIE
2016-11-11 08:54:13 -05:00
Michael Kirk
c6a2fbff23 Tapping corrupted message opens "session reset" activity
This action was previously hidden under a secret longpress gesture in
the fingerprint view controller.

Ideally we'd never receive corrupted messages, but at the point we do,
our sessions are out of whack, and the only recovery option is to reset.
Let's help our users do that.

* Resetting session sends END_SESSION message

  Otherwise the remote side wouldn't know we reset the session and will
  send us a message on the old ratchet.

* Don't reset their identity key when resetting sender ratchet.

* Updated translations

// FREEBIE
2016-11-04 14:57:37 -04:00