mirror of
https://github.com/signalapp/libsignal.git
synced 2026-04-26 01:35:22 +02:00
protocol: Coalesce duplicate recipients in SSv2 parsing
There should be no reason for a client to split up devices of the same recipient in a non-contiguous manner, but since we'd have to check it anyway, we might as well accept it. (Duplicating devices within a recipient can then be checked separately.)
This commit is contained in:
@@ -199,11 +199,12 @@ pub fn initialize_sessions_v4() -> Result<(SessionRecord, SessionRecord), Signal
|
||||
pub fn extract_single_ssv2_received_message(input: &[u8]) -> (ServiceId, Vec<u8>) {
|
||||
let message = SealedSenderV2SentMessage::parse(input).expect("valid");
|
||||
assert_eq!(1, message.recipients.len());
|
||||
let (service_id, recipient) = message.recipients.first().expect("checked length");
|
||||
let result = message
|
||||
.received_message_parts_for_recipient(&message.recipients[0])
|
||||
.received_message_parts_for_recipient(recipient)
|
||||
.as_ref()
|
||||
.concat();
|
||||
(message.recipients[0].service_id, result)
|
||||
(*service_id, result)
|
||||
}
|
||||
|
||||
pub enum IdChoice {
|
||||
|
||||
Reference in New Issue
Block a user