package middleware import ( "log/slog" "net/http" "net/netip" ) // Test-only wrappers exposing unexported helpers to the // external middleware_test package. // NewWithLogger builds a Middleware around a logger for tests // that exercise the logging paths without the fx graph. func NewWithLogger(log *slog.Logger) *Middleware { return &Middleware{log: log} } // NewWithTrustedProxies builds a Middleware that honours forwarded // headers from the given networks, for tests of the client address // paths without the fx graph. func NewWithTrustedProxies(trusted []netip.Prefix) *Middleware { return &Middleware{trustedProxies: trusted} } func ClientIP( remoteAddr string, header http.Header, trusted []netip.Prefix, ) string { return clientIP(remoteAddr, header, trusted) } func ParseTrustedProxies(cidrs []string) ([]netip.Prefix, error) { return parseTrustedProxies(cidrs) }