diff --git a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java index e0a0706f4..cb2867eb8 100644 --- a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java +++ b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java @@ -549,6 +549,8 @@ public class SignalServiceMessageSender { return sendVerifiedSyncMessage(message.getVerified().get()); } else if (message.getRequest().isPresent()) { content = createRequestContent(message.getRequest().get().getRequest()); + } else if (message.getPniIdentity().isPresent()) { + content = createPniIdentityContent(message.getPniIdentity().get()); } else { throw new IOException("Unsupported sync message!"); } @@ -1401,6 +1403,13 @@ public class SignalServiceMessageSender { return container.setSyncMessage(builder).build(); } + private Content createPniIdentityContent(SyncMessage.PniIdentity proto) { + Content.Builder container = Content.newBuilder(); + SyncMessage.Builder builder = SyncMessage.newBuilder().setPniIdentity(proto); + + return container.setSyncMessage(builder).build(); + } + private SyncMessage.Builder createSyncMessageBuilder() { SecureRandom random = new SecureRandom(); byte[] padding = Util.getRandomLengthBytes(512); diff --git a/libsignal/service/src/main/proto/SignalService.proto b/libsignal/service/src/main/proto/SignalService.proto index b9500c824..11ac8fa8d 100644 --- a/libsignal/service/src/main/proto/SignalService.proto +++ b/libsignal/service/src/main/proto/SignalService.proto @@ -565,6 +565,7 @@ message SyncMessage { optional MessageRequestResponse messageRequestResponse = 14; optional OutgoingPayment outgoingPayment = 15; repeated Viewed viewed = 16; + optional PniIdentity pniIdentity = 17; } message AttachmentPointer {