Skip to content

Commit b49a7b0

Browse files
committed
Handle special case
1 parent b95a57a commit b49a7b0

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

xds/src/main/java/io/grpc/xds/internal/rlqs/RlqsEngine.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,10 @@ public RlqsEngine(
5656
public RlqsRateLimitResult rateLimit(HttpMatchInput input) {
5757
RlqsBucketSettings bucketSettings = bucketMatchers.match(input);
5858
RlqsBucketId bucketId = bucketSettings.toBucketId(input);
59+
// Special case when bucket id builder not set.
60+
if (bucketId == null) {
61+
return rateLimitWithoutReports(bucketSettings);
62+
}
5963
RlqsBucket bucket = bucketCache.getOrCreate(bucketId, bucketSettings, newBucket -> {
6064
// Called if a new bucket was created.
6165
scheduleImmediateReport(newBucket);
@@ -64,6 +68,13 @@ public RlqsRateLimitResult rateLimit(HttpMatchInput input) {
6468
return bucket.rateLimit();
6569
}
6670

71+
private static RlqsRateLimitResult rateLimitWithoutReports(RlqsBucketSettings bucketSettings) {
72+
if (bucketSettings.noAssignmentStrategy().rateLimit()) {
73+
return RlqsRateLimitResult.deny(bucketSettings.denyResponse());
74+
}
75+
return RlqsRateLimitResult.allow();
76+
}
77+
6778
private void onBucketsUpdate(List<RlqsUpdateBucketAction> bucketActions) {
6879
// TODO(sergiitk): [impl] ensure no more than 1 update at a time.
6980
for (RlqsUpdateBucketAction bucketAction : bucketActions) {

0 commit comments

Comments
 (0)