Refactor relay consistency check
Check the device list for relay consitency and throw an exception before attempting to encrypt to any of the mismatched devices. // FREEBIE
This commit is contained in:
parent
bafc61600c
commit
acaf7b8de2
2 changed files with 12 additions and 34 deletions
|
@ -39690,24 +39690,13 @@ window.textsecure.messaging = function() {
|
||||||
|
|
||||||
// message == DataMessage or ContentMessage proto
|
// message == DataMessage or ContentMessage proto
|
||||||
function sendMessageToDevices(timestamp, number, deviceObjectList, message) {
|
function sendMessageToDevices(timestamp, number, deviceObjectList, message) {
|
||||||
var relay = undefined;
|
var relay = deviceObjectList[0].relay;
|
||||||
return Promise.all(deviceObjectList.map(function(device) {
|
for (var i=1; i < deviceObjectList.length; ++i) {
|
||||||
if (device.relay !== undefined) {
|
if (deviceObjectList[i].relay !== relay) {
|
||||||
if (relay === undefined)
|
|
||||||
relay = device.relay;
|
|
||||||
else if (relay != device.relay)
|
|
||||||
return new Promise(function() {
|
|
||||||
throw new Error("Mismatched relays for number " + number);
|
throw new Error("Mismatched relays for number " + number);
|
||||||
});
|
|
||||||
} else {
|
|
||||||
if (relay === undefined)
|
|
||||||
relay = "";
|
|
||||||
else if (relay != "")
|
|
||||||
return new Promise(function() {
|
|
||||||
throw new Error("Mismatched relays for number " + number);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
return Promise.all(deviceObjectList.map(function(device) {
|
||||||
return textsecure.protocol_wrapper.encryptMessageFor(device, message).then(function(encryptedMsg) {
|
return textsecure.protocol_wrapper.encryptMessageFor(device, message).then(function(encryptedMsg) {
|
||||||
return textsecure.protocol_wrapper.getRegistrationId(device.encodedNumber).then(function(registrationId) {
|
return textsecure.protocol_wrapper.getRegistrationId(device.encodedNumber).then(function(registrationId) {
|
||||||
return textsecure.storage.devices.removeTempKeysFromDevice(device.encodedNumber).then(function() {
|
return textsecure.storage.devices.removeTempKeysFromDevice(device.encodedNumber).then(function() {
|
||||||
|
|
|
@ -9,24 +9,13 @@ window.textsecure.messaging = function() {
|
||||||
|
|
||||||
// message == DataMessage or ContentMessage proto
|
// message == DataMessage or ContentMessage proto
|
||||||
function sendMessageToDevices(timestamp, number, deviceObjectList, message) {
|
function sendMessageToDevices(timestamp, number, deviceObjectList, message) {
|
||||||
var relay = undefined;
|
var relay = deviceObjectList[0].relay;
|
||||||
return Promise.all(deviceObjectList.map(function(device) {
|
for (var i=1; i < deviceObjectList.length; ++i) {
|
||||||
if (device.relay !== undefined) {
|
if (deviceObjectList[i].relay !== relay) {
|
||||||
if (relay === undefined)
|
|
||||||
relay = device.relay;
|
|
||||||
else if (relay != device.relay)
|
|
||||||
return new Promise(function() {
|
|
||||||
throw new Error("Mismatched relays for number " + number);
|
throw new Error("Mismatched relays for number " + number);
|
||||||
});
|
|
||||||
} else {
|
|
||||||
if (relay === undefined)
|
|
||||||
relay = "";
|
|
||||||
else if (relay != "")
|
|
||||||
return new Promise(function() {
|
|
||||||
throw new Error("Mismatched relays for number " + number);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
return Promise.all(deviceObjectList.map(function(device) {
|
||||||
return textsecure.protocol_wrapper.encryptMessageFor(device, message).then(function(encryptedMsg) {
|
return textsecure.protocol_wrapper.encryptMessageFor(device, message).then(function(encryptedMsg) {
|
||||||
return textsecure.protocol_wrapper.getRegistrationId(device.encodedNumber).then(function(registrationId) {
|
return textsecure.protocol_wrapper.getRegistrationId(device.encodedNumber).then(function(registrationId) {
|
||||||
return textsecure.storage.devices.removeTempKeysFromDevice(device.encodedNumber).then(function() {
|
return textsecure.storage.devices.removeTempKeysFromDevice(device.encodedNumber).then(function() {
|
||||||
|
|
Loading…
Reference in a new issue