diff --git a/transport/internet/tls/ech.go b/transport/internet/tls/ech.go index 8b012250e86..41be26d9db8 100644 --- a/transport/internet/tls/ech.go +++ b/transport/internet/tls/ech.go @@ -24,10 +24,11 @@ func ApplyECH(c *Config, config *tls.Config) error { if len(c.EchConfig) > 0 { ECHConfig = c.EchConfig } else { // ECH config > DOH lookup - if config.ServerName == "" { - return newError("Using DOH for ECH needs serverName") + addr := net.ParseAddress(config.ServerName) + if !addr.Family().IsDomain() { + return newError("Using DOH for ECH needs SNI") } - ECHConfig, err = QueryRecord(c.ServerName, c.Ech_DOHserver) + ECHConfig, err = QueryRecord(addr.Domain(), c.Ech_DOHserver) if err != nil { return err }