private async Task SendMessage(CancellationToken token, VerifiedMessage message) { byte[] nullMessageBody = new DataMessage() { Body = Base64.EncodeBytes(Util.GetRandomLengthBytes(140)) }.ToByteArray(); NullMessage nullMessage = new NullMessage() { Padding = ByteString.CopyFrom(nullMessageBody) }; byte[] content = new Content() { NullMessage = nullMessage }.ToByteArray(); SendMessageResponse response = await SendMessage(token, new SignalServiceAddress(message.Destination), message.Timestamp, content, false); if (response != null && response.NeedsSync) { byte[] syncMessage = CreateMultiDeviceVerifiedContent(message, nullMessage.ToByteArray()); await SendMessage(token, localAddress, message.Timestamp, syncMessage, false); } }
private async Task SendMessage(CancellationToken token, VerifiedMessage message, UnidentifiedAccessPair?unidentifiedAccessPair) { byte[] nullMessageBody = new DataMessage() { Body = Base64.EncodeBytes(Util.GetRandomLengthBytes(140)) }.ToByteArray(); NullMessage nullMessage = new NullMessage() { Padding = ByteString.CopyFrom(nullMessageBody) }; byte[] content = new Content() { NullMessage = nullMessage }.ToByteArray(); SendMessageResult result = await SendMessage(token, new SignalServiceAddress(message.Destination), unidentifiedAccessPair?.TargetUnidentifiedAccess, message.Timestamp, content); if (result.Success.NeedsSync) { byte[] syncMessage = CreateMultiDeviceVerifiedContent(message, nullMessage.ToByteArray()); await SendMessage(token, LocalAddress, unidentifiedAccessPair?.SelfUnidentifiedAccess, message.Timestamp, syncMessage); } }