Send increased protocol version number if CDN key or attachment are used.

This commit is contained in:
Ehren Kret 2020-04-05 18:56:18 -07:00 committed by Greyson Parrelli
parent 428128651e
commit 3c6a7b76ca
2 changed files with 15 additions and 8 deletions

View file

@ -22,11 +22,10 @@ import org.whispersystems.signalservice.api.crypto.SignalServiceCipher;
import org.whispersystems.signalservice.api.crypto.UnidentifiedAccess; import org.whispersystems.signalservice.api.crypto.UnidentifiedAccess;
import org.whispersystems.signalservice.api.crypto.UnidentifiedAccessPair; import org.whispersystems.signalservice.api.crypto.UnidentifiedAccessPair;
import org.whispersystems.signalservice.api.crypto.UntrustedIdentityException; import org.whispersystems.signalservice.api.crypto.UntrustedIdentityException;
import org.whispersystems.signalservice.api.groupsv2.ClientZkOperations;
import org.whispersystems.signalservice.api.messages.SendMessageResult; import org.whispersystems.signalservice.api.messages.SendMessageResult;
import org.whispersystems.signalservice.api.messages.SignalServiceAttachment; import org.whispersystems.signalservice.api.messages.SignalServiceAttachment;
import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentRemoteId;
import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentPointer; import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentPointer;
import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentRemoteId;
import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentStream; import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentStream;
import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage; import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage;
import org.whispersystems.signalservice.api.messages.SignalServiceGroup; import org.whispersystems.signalservice.api.messages.SignalServiceGroup;
@ -503,6 +502,13 @@ public class SignalServiceMessageSender {
if (!pointers.isEmpty()) { if (!pointers.isEmpty()) {
builder.addAllAttachments(pointers); builder.addAllAttachments(pointers);
for (AttachmentPointer pointer : pointers) {
if (pointer.getAttachmentIdentifierCase() == AttachmentPointer.AttachmentIdentifierCase.CDNKEY || pointer.getCdnNumber() != 0) {
builder.setRequiredProtocolVersion(Math.max(DataMessage.ProtocolVersion.CDN_SELECTOR_ATTACHMENTS_VALUE, builder.getRequiredProtocolVersion()));
break;
}
}
} }
if (message.getBody().isPresent()) { if (message.getBody().isPresent()) {

View file

@ -192,7 +192,8 @@ message DataMessage {
VIEW_ONCE = 2; VIEW_ONCE = 2;
VIEW_ONCE_VIDEO = 3; VIEW_ONCE_VIDEO = 3;
REACTIONS = 4; REACTIONS = 4;
CURRENT = 4; CDN_SELECTOR_ATTACHMENTS = 5;
CURRENT = 5;
} }
optional string body = 1; optional string body = 1;