Exemplo n.º 1
0
        private OutgoingPushMessageList getEncryptedMessages(PushServiceSocket socket,
                                                             SignalServiceAddress recipient,
                                                             long timestamp,
                                                             byte[] plaintext,
                                                             bool legacy,
                                                             bool silent)
        {
            List <OutgoingPushMessage> messages = new List <OutgoingPushMessage>();

            bool myself = recipient.Equals(localAddress);

            if (!myself || CredentialsProvider.GetDeviceId() != SignalServiceAddress.DEFAULT_DEVICE_ID)
            {
                messages.Add(getEncryptedMessage(socket, recipient, SignalServiceAddress.DEFAULT_DEVICE_ID, plaintext, legacy, silent));
            }

            foreach (uint deviceId in store.GetSubDeviceSessions(recipient.getNumber()))
            {
                if (!myself || deviceId != CredentialsProvider.GetDeviceId())
                {
                    messages.Add(getEncryptedMessage(socket, recipient, deviceId, plaintext, legacy, silent));
                }
            }

            return(new OutgoingPushMessageList(recipient.getNumber(), (ulong)timestamp, recipient.getRelay().HasValue ? recipient.getRelay().ForceGetValue() : null, messages));
        }
Exemplo n.º 2
0
 /// <summary>
 /// Send a delivery receipt for a received message.  It is not necessary to call this
 /// when receiving messages through <see cref="SignalServiceMessagePipe"/>
 /// </summary>
 /// <param name="recipient">The sender of the received message you're acknowledging.</param>
 /// <param name="messageId">The message id of the received message you're acknowledging.</param>
 public void sendDeliveryReceipt(SignalServiceAddress recipient, ulong messageId)
 {
     this.socket.sendReceipt(recipient.getNumber(), messageId, recipient.getRelay());
 }
Exemplo n.º 3
0
        private async Task <OutgoingPushMessageList> getEncryptedMessages(PushServiceSocket socket,
                                                                          SignalServiceAddress recipient,
                                                                          long timestamp,
                                                                          byte[] plaintext,
                                                                          bool legacy,
                                                                          bool silent)
        {
            List <OutgoingPushMessage> messages = new List <OutgoingPushMessage>();

            if (!recipient.Equals(localAddress))
            {
                messages.Add(await getEncryptedMessage(socket, recipient, SignalServiceAddress.DEFAULT_DEVICE_ID, plaintext, legacy, silent));
            }

            foreach (uint deviceId in store.GetSubDeviceSessions(recipient.getNumber()))
            {
                messages.Add(await getEncryptedMessage(socket, recipient, deviceId, plaintext, legacy, silent));
            }

            return(new OutgoingPushMessageList(recipient.getNumber(), (ulong)timestamp, recipient.getRelay().HasValue ? recipient.getRelay().ForceGetValue() : null, messages));
        }