Take into account multi device when counting duplicates

pull/181/head
nielsandriesse 5 years ago
parent bcecf70b3b
commit d742d0aeaa

@ -404,10 +404,21 @@ NS_ASSUME_NONNULL_BEGIN
return; return;
} }
BOOL duplicateEnvelope = [self.incomingMessageFinder existsMessageWithTimestamp:envelope.timestamp OWSPrimaryStorage *storage = OWSPrimaryStorage.sharedManager;
sourceId:envelope.source __block NSSet<NSString *> *linkedDeviceHexEncodedPublicKeys;
sourceDeviceId:envelope.sourceDevice [storage.dbReadConnection readWithBlock:^(YapDatabaseReadTransaction *transaction) {
transaction:transaction]; linkedDeviceHexEncodedPublicKeys = [LKDatabaseUtilities getLinkedDeviceHexEncodedPublicKeysFor:envelope.source in:transaction];
}];
BOOL duplicateEnvelope = NO;
for (NSString *hexEncodedPublicKey in linkedDeviceHexEncodedPublicKeys) {
duplicateEnvelope = duplicateEnvelope
|| [self.incomingMessageFinder existsMessageWithTimestamp:envelope.timestamp
sourceId:hexEncodedPublicKey
sourceDeviceId:envelope.sourceDevice
transaction:transaction];
}
if (duplicateEnvelope) { if (duplicateEnvelope) {
OWSLogInfo(@"Ignoring previously received envelope from: %@ with timestamp: %llu.", OWSLogInfo(@"Ignoring previously received envelope from: %@ with timestamp: %llu.",
envelopeAddress(envelope), envelopeAddress(envelope),

Loading…
Cancel
Save