25 lines
1.1 KiB
Diff
25 lines
1.1 KiB
Diff
# UNDF: UNDF-2026-000001032
|
|
--- a/weed/s3api/s3api_server.go
|
|
+++ b/weed/s3api/s3api_server.go
|
|
@@ -436,13 +436,16 @@ func classifyDomainNames(domainNames []string) (pathStyleDomains, virtualHostDom
|
|
// while "s3.example.com" is virtual-host style.
|
|
func classifyDomainNames(domainNames []string) (pathStyleDomains, virtualHostDomains []string) {
|
|
+ domainSet := make(map[string]bool, len(domainNames))
|
|
+ for _, d := range domainNames {
|
|
+ domainSet[d] = true
|
|
+ }
|
|
for _, domainName := range domainNames {
|
|
parts := strings.SplitN(domainName, ".", 2)
|
|
- if len(parts) == 2 && slices.Contains(domainNames, parts[1]) {
|
|
+ if len(parts) == 2 && domainSet[parts[1]] {
|
|
// This is a subdomain and its parent is also in the list
|
|
// Register as path-style: domain.com/bucket/object
|
|
pathStyleDomains = append(pathStyleDomains, domainName)
|
|
} else {
|
|
// This is a top-level domain or its parent is not in the list
|
|
// Register as virtual-host style: bucket.domain.com/object
|
|
virtualHostDomains = append(virtualHostDomains, domainName)
|
|
}
|
|
}
|
|
return pathStyleDomains, virtualHostDomains
|
|
}
|