0
Fork 0
mirror of https://github.com/caddyserver/caddy.git synced 2025-01-06 22:40:31 -05:00
caddy/modules/caddytls/matchers.go

31 lines
611 B
Go

package caddytls
import (
"crypto/tls"
"bitbucket.org/lightcodelabs/caddy2"
)
// MatchServerName matches based on SNI.
type MatchServerName []string
func init() {
caddy2.RegisterModule(caddy2.Module{
Name: "tls.handshake_match.sni",
New: func() interface{} { return MatchServerName{} },
})
}
// Match matches hello based on SNI.
func (m MatchServerName) Match(hello *tls.ClientHelloInfo) bool {
for _, name := range m {
// TODO: support wildcards (and regex?)
if hello.ServerName == name {
return true
}
}
return false
}
// Interface guard
var _ ConnectionMatcher = MatchServerName{}