mirror of
https://github.com/distribution/distribution.git
synced 2025-09-19 01:17:32 +00:00
Extract request utilities into its own package
The RemoteAddr and RemoteIP functions operate on *http.Request values, not contexts. They have very low cohesion with the rest of the package. Signed-off-by: Cory Snider <csnider@mirantis.com>
This commit is contained in:
@@ -12,6 +12,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/distribution/distribution/v3/internal/dcontext"
|
||||
"github.com/distribution/distribution/v3/internal/requestutil"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -188,7 +189,7 @@ func parseIPFromRequest(ctx context.Context) (net.IP, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
ipStr := dcontext.RemoteIP(request)
|
||||
ipStr := requestutil.RemoteIP(request)
|
||||
ip := net.ParseIP(ipStr)
|
||||
if ip == nil {
|
||||
return nil, fmt.Errorf("invalid ip address from requester: %s", ipStr)
|
||||
@@ -208,7 +209,7 @@ func eligibleForS3(ctx context.Context, awsIPs *awsIPs) bool {
|
||||
} else {
|
||||
loggerField := map[interface{}]interface{}{
|
||||
"user-client": request.UserAgent(),
|
||||
"ip": dcontext.RemoteIP(request),
|
||||
"ip": requestutil.RemoteIP(request),
|
||||
}
|
||||
if awsIPs.contains(addr) {
|
||||
dcontext.GetLoggerWithFields(ctx, loggerField).Info("request from the allowed AWS region, skipping CloudFront")
|
||||
|
Reference in New Issue
Block a user