Fix fetch ECH configs

This commit is contained in:
ReleTor 2025-04-06 20:33:13 +08:00 committed by 世界
parent 148234b742
commit 6aace7b1b7
No known key found for this signature in database
GPG Key ID: CD109927C34A63C4

View File

@ -123,6 +123,7 @@ func (s *STDECHClientConfig) ClientHandshake(ctx context.Context, conn net.Conn)
if response.Rcode != mDNS.RcodeSuccess { if response.Rcode != mDNS.RcodeSuccess {
return nil, E.Cause(dns.RcodeError(response.Rcode), "fetch ECH config list") return nil, E.Cause(dns.RcodeError(response.Rcode), "fetch ECH config list")
} }
match:
for _, rr := range response.Answer { for _, rr := range response.Answer {
switch resource := rr.(type) { switch resource := rr.(type) {
case *mDNS.HTTPS: case *mDNS.HTTPS:
@ -133,11 +134,14 @@ func (s *STDECHClientConfig) ClientHandshake(ctx context.Context, conn net.Conn)
return nil, E.Cause(err, "decode ECH config") return nil, E.Cause(err, "decode ECH config")
} }
s.config.EncryptedClientHelloConfigList = echConfigList s.config.EncryptedClientHelloConfigList = echConfigList
break match
} }
} }
} }
} }
return nil, E.New("no ECH config found in DNS records") if len(s.config.EncryptedClientHelloConfigList) == 0 {
return nil, E.New("no ECH config found in DNS records")
}
} }
tlsConn, err := s.Client(conn) tlsConn, err := s.Client(conn)
if err != nil { if err != nil {