Maintain original received time when processing queued/error msgs

FREEBIE
This commit is contained in:
Scott Nonnenberg 2017-08-11 17:06:48 -07:00
parent 8700112f6d
commit 620b71a649
3 changed files with 13 additions and 3 deletions

View file

@ -288,13 +288,11 @@
}
function initIncomingMessage(data) {
var now = new Date().getTime();
var message = new Whisper.Message({
source : data.source,
sourceDevice : data.sourceDevice,
sent_at : data.timestamp,
received_at : now,
received_at : data.receivedAt || Date.now(),
conversationId : data.source,
type : 'incoming',
unread : 1

View file

@ -38332,6 +38332,7 @@ MessageReceiver.prototype.extend({
}
return;
}
var receivedAt = Date.now();
this.incoming.push(textsecure.crypto.decryptWebsocketMessage(request.body, this.signalingKey).then(function(plaintext) {
var envelope = textsecure.protobuf.Envelope.decode(plaintext);
@ -38343,6 +38344,8 @@ MessageReceiver.prototype.extend({
return request.respond(200, 'OK');
}
envelope.receivedAt = receivedAt;
return this.addToCache(envelope, plaintext).then(function() {
request.respond(200, 'OK');
this.queueEnvelope(envelope);
@ -38687,6 +38690,7 @@ MessageReceiver.prototype.extend({
source : envelope.source,
sourceDevice : envelope.sourceDevice,
timestamp : envelope.timestamp.toNumber(),
receivedAt : envelope.receivedAt,
message : message
};
return this.dispatchAndWait(ev);
@ -38923,6 +38927,7 @@ MessageReceiver.prototype.extend({
tryMessageAgain: function(from, ciphertext, message) {
var address = libsignal.SignalProtocolAddress.fromString(from);
var sentAt = message.sent_at || Date.now();
var receivedAt = message.received_at || Date.now();
var ourNumber = textsecure.storage.user.getNumber();
var number = address.getName();
@ -38940,6 +38945,7 @@ MessageReceiver.prototype.extend({
var envelope = {
source: number,
sourceDevice: device,
receivedAt: receivedAt,
timestamp: {
toNumber: function() {
return sentAt;

View file

@ -81,6 +81,7 @@ MessageReceiver.prototype.extend({
}
return;
}
var receivedAt = Date.now();
this.incoming.push(textsecure.crypto.decryptWebsocketMessage(request.body, this.signalingKey).then(function(plaintext) {
var envelope = textsecure.protobuf.Envelope.decode(plaintext);
@ -92,6 +93,8 @@ MessageReceiver.prototype.extend({
return request.respond(200, 'OK');
}
envelope.receivedAt = receivedAt;
return this.addToCache(envelope, plaintext).then(function() {
request.respond(200, 'OK');
this.queueEnvelope(envelope);
@ -436,6 +439,7 @@ MessageReceiver.prototype.extend({
source : envelope.source,
sourceDevice : envelope.sourceDevice,
timestamp : envelope.timestamp.toNumber(),
receivedAt : envelope.receivedAt,
message : message
};
return this.dispatchAndWait(ev);
@ -672,6 +676,7 @@ MessageReceiver.prototype.extend({
tryMessageAgain: function(from, ciphertext, message) {
var address = libsignal.SignalProtocolAddress.fromString(from);
var sentAt = message.sent_at || Date.now();
var receivedAt = message.received_at || Date.now();
var ourNumber = textsecure.storage.user.getNumber();
var number = address.getName();
@ -689,6 +694,7 @@ MessageReceiver.prototype.extend({
var envelope = {
source: number,
sourceDevice: device,
receivedAt: receivedAt,
timestamp: {
toNumber: function() {
return sentAt;