From 3132cd1198888348ffeecb888bf1a82cbec31af7 Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Tue, 6 Dec 2022 22:21:14 -0500 Subject: [PATCH] Drop group call rings for large groups. --- .../securesms/service/webrtc/IdleActionProcessor.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IdleActionProcessor.java b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IdleActionProcessor.java index 7b030b9ca..c48b807d7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IdleActionProcessor.java +++ b/app/src/main/java/org/thoughtcrime/securesms/service/webrtc/IdleActionProcessor.java @@ -15,6 +15,7 @@ import org.thoughtcrime.securesms.notifications.profiles.NotificationProfiles; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.ringrtc.RemotePeer; import org.thoughtcrime.securesms.service.webrtc.state.WebRtcServiceState; +import org.thoughtcrime.securesms.util.FeatureFlags; import org.whispersystems.signalservice.api.messages.calls.OfferMessage; import java.util.UUID; @@ -94,6 +95,12 @@ public class IdleActionProcessor extends WebRtcActionProcessor { { Log.i(TAG, "handleGroupCallRingUpdate(): recipient: " + remotePeerGroup.getId() + " ring: " + ringId + " update: " + ringUpdate); + int groupSize = remotePeerGroup.getRecipient().getParticipantIds().size(); + if (groupSize > FeatureFlags.maxGroupCallRingSize()) { + Log.w(TAG, "Received ring request for large group, dropping. size: " + groupSize + " max: " + FeatureFlags.maxGroupCallRingSize()); + return currentState; + } + if (ringUpdate != CallManager.RingUpdate.REQUESTED) { SignalDatabase.groupCallRings().insertOrUpdateGroupRing(ringId, System.currentTimeMillis(), ringUpdate); return currentState;