Rename receipt type and add new client-to-client plaintext type for decryption error receipts
This commit is contained in:
parent
6456af6284
commit
164fc40990
|
@ -549,7 +549,7 @@ public class MessageController {
|
||||||
account.getAuthenticatedDevice().get().getId(),
|
account.getAuthenticatedDevice().get().getId(),
|
||||||
source, timestamp);
|
source, timestamp);
|
||||||
|
|
||||||
if (message.isPresent() && message.get().getType() != Envelope.Type.RECEIPT_VALUE) {
|
if (message.isPresent() && message.get().getType() != Envelope.Type.SERVER_DELIVERY_RECEIPT_VALUE) {
|
||||||
receiptSender.sendReceipt(account,
|
receiptSender.sendReceipt(account,
|
||||||
message.get().getSource(),
|
message.get().getSource(),
|
||||||
message.get().getTimestamp());
|
message.get().getTimestamp());
|
||||||
|
@ -571,7 +571,7 @@ public class MessageController {
|
||||||
|
|
||||||
if (message.isPresent()) {
|
if (message.isPresent()) {
|
||||||
WebSocketConnection.recordMessageDeliveryDuration(message.get().getTimestamp(), account.getAuthenticatedDevice().get());
|
WebSocketConnection.recordMessageDeliveryDuration(message.get().getTimestamp(), account.getAuthenticatedDevice().get());
|
||||||
if (!Util.isEmpty(message.get().getSource()) && message.get().getType() != Envelope.Type.RECEIPT_VALUE) {
|
if (!Util.isEmpty(message.get().getSource()) && message.get().getType() != Envelope.Type.SERVER_DELIVERY_RECEIPT_VALUE) {
|
||||||
receiptSender.sendReceipt(account, message.get().getSource(), message.get().getTimestamp());
|
receiptSender.sendReceipt(account, message.get().getSource(), message.get().getTimestamp());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -605,7 +605,7 @@ public class MessageController {
|
||||||
Optional<byte[]> messageContent = getMessageContent(incomingMessage);
|
Optional<byte[]> messageContent = getMessageContent(incomingMessage);
|
||||||
Envelope.Builder messageBuilder = Envelope.newBuilder();
|
Envelope.Builder messageBuilder = Envelope.newBuilder();
|
||||||
|
|
||||||
messageBuilder.setType(Envelope.Type.valueOf(incomingMessage.getType()))
|
messageBuilder.setType(Envelope.Type.forNumber(incomingMessage.getType()))
|
||||||
.setTimestamp(timestamp == 0 ? System.currentTimeMillis() : timestamp)
|
.setTimestamp(timestamp == 0 ? System.currentTimeMillis() : timestamp)
|
||||||
.setServerTimestamp(System.currentTimeMillis());
|
.setServerTimestamp(System.currentTimeMillis());
|
||||||
|
|
||||||
|
|
|
@ -43,7 +43,7 @@ public class ReceiptSender {
|
||||||
.setSourceUuid(source.getUuid().toString())
|
.setSourceUuid(source.getUuid().toString())
|
||||||
.setSourceDevice((int) source.getAuthenticatedDevice().get().getId())
|
.setSourceDevice((int) source.getAuthenticatedDevice().get().getId())
|
||||||
.setTimestamp(messageId)
|
.setTimestamp(messageId)
|
||||||
.setType(Envelope.Type.RECEIPT);
|
.setType(Envelope.Type.SERVER_DELIVERY_RECEIPT);
|
||||||
|
|
||||||
if (source.getRelay().isPresent()) {
|
if (source.getRelay().isPresent()) {
|
||||||
message.setRelay(source.getRelay().get());
|
message.setRelay(source.getRelay().get());
|
||||||
|
|
|
@ -171,7 +171,7 @@ public class WebSocketConnection implements MessageAvailabilityListener, Displac
|
||||||
messagesManager.delete(account.getUuid(), device.getId(), storedMessageInfo.get().getGuid());
|
messagesManager.delete(account.getUuid(), device.getId(), storedMessageInfo.get().getGuid());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (message.getType() != Envelope.Type.RECEIPT) {
|
if (message.getType() != Envelope.Type.SERVER_DELIVERY_RECEIPT) {
|
||||||
recordMessageDeliveryDuration(message.getTimestamp(), device);
|
recordMessageDeliveryDuration(message.getTimestamp(), device);
|
||||||
sendDeliveryReceiptFor(message);
|
sendDeliveryReceiptFor(message);
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,8 +25,10 @@ message Envelope {
|
||||||
CIPHERTEXT = 1;
|
CIPHERTEXT = 1;
|
||||||
KEY_EXCHANGE = 2;
|
KEY_EXCHANGE = 2;
|
||||||
PREKEY_BUNDLE = 3;
|
PREKEY_BUNDLE = 3;
|
||||||
RECEIPT = 5;
|
SERVER_DELIVERY_RECEIPT = 5;
|
||||||
UNIDENTIFIED_SENDER = 6;
|
UNIDENTIFIED_SENDER = 6;
|
||||||
|
reserved 7;
|
||||||
|
PLAINTEXT_CONTENT = 8; // for decryption error receipts
|
||||||
}
|
}
|
||||||
|
|
||||||
optional Type type = 1;
|
optional Type type = 1;
|
||||||
|
|
|
@ -478,7 +478,7 @@ class MessageControllerTest {
|
||||||
|
|
||||||
List<OutgoingMessageEntity> messages = new LinkedList<>() {{
|
List<OutgoingMessageEntity> messages = new LinkedList<>() {{
|
||||||
add(new OutgoingMessageEntity(1L, false, messageGuidOne, Envelope.Type.CIPHERTEXT_VALUE, null, timestampOne, "+14152222222", sourceUuid, 2, "hi there".getBytes(), null, 0));
|
add(new OutgoingMessageEntity(1L, false, messageGuidOne, Envelope.Type.CIPHERTEXT_VALUE, null, timestampOne, "+14152222222", sourceUuid, 2, "hi there".getBytes(), null, 0));
|
||||||
add(new OutgoingMessageEntity(2L, false, null, Envelope.Type.RECEIPT_VALUE, null, timestampTwo, "+14152222222", sourceUuid, 2, null, null, 0));
|
add(new OutgoingMessageEntity(2L, false, null, Envelope.Type.SERVER_DELIVERY_RECEIPT_VALUE, null, timestampTwo, "+14152222222", sourceUuid, 2, null, null, 0));
|
||||||
}};
|
}};
|
||||||
|
|
||||||
OutgoingMessageEntityList messagesList = new OutgoingMessageEntityList(messages, false);
|
OutgoingMessageEntityList messagesList = new OutgoingMessageEntityList(messages, false);
|
||||||
|
@ -515,7 +515,7 @@ class MessageControllerTest {
|
||||||
|
|
||||||
List<OutgoingMessageEntity> messages = new LinkedList<OutgoingMessageEntity>() {{
|
List<OutgoingMessageEntity> messages = new LinkedList<OutgoingMessageEntity>() {{
|
||||||
add(new OutgoingMessageEntity(1L, false, UUID.randomUUID(), Envelope.Type.CIPHERTEXT_VALUE, null, timestampOne, "+14152222222", UUID.randomUUID(), 2, "hi there".getBytes(), null, 0));
|
add(new OutgoingMessageEntity(1L, false, UUID.randomUUID(), Envelope.Type.CIPHERTEXT_VALUE, null, timestampOne, "+14152222222", UUID.randomUUID(), 2, "hi there".getBytes(), null, 0));
|
||||||
add(new OutgoingMessageEntity(2L, false, UUID.randomUUID(), Envelope.Type.RECEIPT_VALUE, null, timestampTwo, "+14152222222", UUID.randomUUID(), 2, null, null, 0));
|
add(new OutgoingMessageEntity(2L, false, UUID.randomUUID(), Envelope.Type.SERVER_DELIVERY_RECEIPT_VALUE, null, timestampTwo, "+14152222222", UUID.randomUUID(), 2, null, null, 0));
|
||||||
}};
|
}};
|
||||||
|
|
||||||
OutgoingMessageEntityList messagesList = new OutgoingMessageEntityList(messages, false);
|
OutgoingMessageEntityList messagesList = new OutgoingMessageEntityList(messages, false);
|
||||||
|
@ -546,7 +546,7 @@ class MessageControllerTest {
|
||||||
|
|
||||||
when(messagesManager.delete(AuthHelper.VALID_UUID, 1, "+14152222222", 31338))
|
when(messagesManager.delete(AuthHelper.VALID_UUID, 1, "+14152222222", 31338))
|
||||||
.thenReturn(Optional.of(new OutgoingMessageEntity(31337L, true, null,
|
.thenReturn(Optional.of(new OutgoingMessageEntity(31337L, true, null,
|
||||||
Envelope.Type.RECEIPT_VALUE,
|
Envelope.Type.SERVER_DELIVERY_RECEIPT_VALUE,
|
||||||
null, System.currentTimeMillis(),
|
null, System.currentTimeMillis(),
|
||||||
"+14152222222", sourceUuid, 1, null, null, 0)));
|
"+14152222222", sourceUuid, 1, null, null, 0)));
|
||||||
|
|
||||||
|
|
|
@ -823,7 +823,7 @@ public class WebSocketConnectionTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
private OutgoingMessageEntity createMessage(long id, boolean cached, String sender, UUID senderUuid, long timestamp, boolean receipt, String content) {
|
private OutgoingMessageEntity createMessage(long id, boolean cached, String sender, UUID senderUuid, long timestamp, boolean receipt, String content) {
|
||||||
return new OutgoingMessageEntity(id, cached, UUID.randomUUID(), receipt ? Envelope.Type.RECEIPT_VALUE : Envelope.Type.CIPHERTEXT_VALUE,
|
return new OutgoingMessageEntity(id, cached, UUID.randomUUID(), receipt ? Envelope.Type.SERVER_DELIVERY_RECEIPT_VALUE : Envelope.Type.CIPHERTEXT_VALUE,
|
||||||
null, timestamp, sender, senderUuid, 1, content.getBytes(), null, 0);
|
null, timestamp, sender, senderUuid, 1, content.getBytes(), null, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue