More work on replayable errors
Expose a button that does that retries outgoing messages if possible. // FREEBIE
This commit is contained in:
parent
bc0c9bd133
commit
a32f3ff1f6
8 changed files with 131 additions and 55 deletions
|
@ -37,14 +37,14 @@ MessageSender.prototype = {
|
|||
});
|
||||
})).then(function(jsonData) {
|
||||
var legacy = (message instanceof textsecure.protobuf.DataMessage);
|
||||
return this.sendRequest(number, jsonData, legacy);
|
||||
return this.sendMessageRequest(number, jsonData, legacy);
|
||||
}.bind(this));
|
||||
},
|
||||
|
||||
sendRequest: function(number, jsonData, legacy) {
|
||||
sendMessageRequest: function(number, jsonData, legacy) {
|
||||
return this.server.sendMessages(number, jsonData, legacy).catch(function(e) {
|
||||
if (e.name === 'HTTPError' && e.code === -1) {
|
||||
throw new NetworkError(number, jsonData, legacy);
|
||||
if (e.name === 'HTTPError' && (e.code !== 409 && e.code !== 410)) {
|
||||
throw new textsecure.SendMessageNetworkError(number, jsonData, legacy, e);
|
||||
}
|
||||
throw e;
|
||||
});
|
||||
|
@ -84,9 +84,10 @@ MessageSender.prototype = {
|
|||
};
|
||||
|
||||
var registerError = function(number, reason, error) {
|
||||
if (!error) {
|
||||
error = new Error(reason);
|
||||
if (!error || error.name === 'HTTPError') {
|
||||
error = new textsecure.OutgoingMessageError(number, message.toArrayBuffer(), timestamp, error);
|
||||
}
|
||||
|
||||
error.number = number;
|
||||
error.reason = reason;
|
||||
errors[errors.length] = error;
|
||||
|
@ -425,8 +426,8 @@ window.textsecure = window.textsecure || {};
|
|||
|
||||
textsecure.MessageSender = function(url, username, password) {
|
||||
var sender = new MessageSender(url, username, password);
|
||||
textsecure.replay.registerFunction(sender.tryMessageAgain.bind(sender), textsecure.replay.Type.SEND_MESSAGE);
|
||||
textsecure.replay.registerFunction(sender.sendRequest.bind(sender), textsecure.replay.Type.NETWORK_REQUEST);
|
||||
textsecure.replay.registerFunction(sender.tryMessageAgain.bind(sender), textsecure.replay.Type.ENCRYPT_MESSAGE);
|
||||
textsecure.replay.registerFunction(sender.sendMessageRequest.bind(sender), textsecure.replay.Type.TRANSMIT_MESSAGE);
|
||||
|
||||
this.sendRequestGroupSyncMessage = sender.sendRequestGroupSyncMessage .bind(sender);
|
||||
this.sendRequestContactSyncMessage = sender.sendRequestContactSyncMessage.bind(sender);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue