Skip to content

Commit a01a01b

Browse files
Merge pull request #184 from RomainBelorgey/sourceip
Always return the source ip even if no limits
2 parents 133c07e + a4de1d9 commit a01a01b

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

Diff for: pkg/hub/ratelimiting.go

+12-6
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,9 @@ type RateLimits struct {
3737
}
3838

3939
var (
40-
first = "https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull"
41-
second = "https://registry-1.docker.io/v2/ratelimitpreview/test/manifests/latest"
40+
first = "https://auth.docker.io/token?service=registry.docker.io&scope=repository:ratelimitpreview/test:pull"
41+
second = "https://registry-1.docker.io/v2/ratelimitpreview/test/manifests/latest"
42+
defaultValue = -1
4243
)
4344

4445
// SetURLs change the base urls used to check ratelimiting values
@@ -47,7 +48,7 @@ func SetURLs(newFirst, newSecond string) {
4748
second = newSecond
4849
}
4950

50-
// GetRateLimits returns the rate limits for the authenticated user
51+
// GetRateLimits returns the rate limits for the user
5152
func (c *Client) GetRateLimits() (*RateLimits, error) {
5253
token, err := tryGetToken(c)
5354
if err != nil {
@@ -66,9 +67,16 @@ func (c *Client) GetRateLimits() (*RateLimits, error) {
6667

6768
limitHeader := resp.Header.Get("Ratelimit-Limit")
6869
remainingHeader := resp.Header.Get("Ratelimit-Remaining")
70+
source := resp.Header.Get("docker-Ratelimit-Source")
6971

7072
if limitHeader == "" || remainingHeader == "" {
71-
return nil, nil
73+
return &RateLimits{
74+
Limit: &defaultValue,
75+
LimitWindow: &defaultValue,
76+
Remaining: &defaultValue,
77+
RemainingWindow: &defaultValue,
78+
Source: &source,
79+
}, nil
7280
}
7381

7482
limit, limitWindow, err := parseLimitHeader(limitHeader)
@@ -81,8 +89,6 @@ func (c *Client) GetRateLimits() (*RateLimits, error) {
8189
return nil, err
8290
}
8391

84-
source := resp.Header.Get("docker-Ratelimit-Source")
85-
8692
return &RateLimits{
8793
Limit: &limit,
8894
LimitWindow: &limitWindow,

0 commit comments

Comments
 (0)