mirror of
https://github.com/signalapp/Signal-Server
synced 2026-04-20 05:48:06 +01:00
Account for fronted regions
This commit is contained in:
@@ -54,6 +54,7 @@ import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.codahale.metrics.MetricRegistry.name;
|
||||
import io.dropwizard.auth.Auth;
|
||||
@@ -68,6 +69,8 @@ public class DirectoryController {
|
||||
"unexpected-error",
|
||||
};
|
||||
|
||||
private static final String[] FRONTED_REGIONS = {"+20", "+971", "+968", "+974"};
|
||||
|
||||
private final Logger logger = LoggerFactory.getLogger(DirectoryController.class);
|
||||
private final MetricRegistry metricRegistry = SharedMetricRegistries.getOrCreate(Constants.METRICS_NAME);
|
||||
private final Histogram contactsHistogram = metricRegistry.histogram(name(getClass(), "contacts"));
|
||||
@@ -175,7 +178,10 @@ public class DirectoryController {
|
||||
.reduce((a, b) -> b)
|
||||
.orElseThrow();
|
||||
|
||||
rateLimiters.getContactsIpLimiter().validate(requester);
|
||||
if (Stream.of(FRONTED_REGIONS).noneMatch(region -> account.getNumber().startsWith(region))) {
|
||||
rateLimiters.getContactsIpLimiter().validate(requester);
|
||||
}
|
||||
|
||||
rateLimiters.getContactsLimiter().validate(account.getNumber(), contacts.getContacts().size());
|
||||
contactsHistogram.update(contacts.getContacts().size());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user