mirror of
https://github.com/caddyserver/caddy.git
synced 2026-11-11 19:37:55 +00:00
* internal: fix MaxSizeSubjectsListForLog off-by-one when maxToDisplay is 0 The loop appended before checking the length, so with maxToDisplay=0 one domain leaked into the output before the break check. Reorder so the length check comes first. Signed-off-by: Mohammed Al Sahaf <msaa1990@gmail.com> * Update internal/logs.go Co-authored-by: Zen Dodd <mail@steadytao.com> Signed-off-by: Mohammed Al Sahaf <mohammed@caffeinatedwonders.com> * fix doc Signed-off-by: Mohammed Al Sahaf <msaa1990@gmail.com> --------- Signed-off-by: Mohammed Al Sahaf <msaa1990@gmail.com> Signed-off-by: Mohammed Al Sahaf <mohammed@caffeinatedwonders.com> Co-authored-by: Zen Dodd <mail@steadytao.com>
23 lines
839 B
Go
23 lines
839 B
Go
package internal
|
|
|
|
import "fmt"
|
|
|
|
// MaxSizeSubjectsListForLog returns up to maxToDisplay keys from subjects.
|
|
// If any keys are omitted, it appends one additional entry summarising the
|
|
// omitted count. This bounds the number of subject names placed in the log
|
|
// while making truncation explicit.
|
|
func MaxSizeSubjectsListForLog(subjects map[string]struct{}, maxToDisplay int) []string {
|
|
numberOfNamesToDisplay := min(len(subjects), maxToDisplay)
|
|
domainsToDisplay := make([]string, 0, numberOfNamesToDisplay)
|
|
for domain := range subjects {
|
|
if len(domainsToDisplay) >= numberOfNamesToDisplay {
|
|
break
|
|
}
|
|
domainsToDisplay = append(domainsToDisplay, domain)
|
|
}
|
|
if len(subjects) > maxToDisplay {
|
|
domainsToDisplay = append(domainsToDisplay, fmt.Sprintf("(and %d more...)", len(subjects)-maxToDisplay))
|
|
}
|
|
return domainsToDisplay
|
|
}
|