implement a more intuitive address validation API

This commit is contained in:
Marten Seemann
2022-08-04 00:28:13 +02:00
parent 556a6e2f99
commit f2fa98c0dd
14 changed files with 352 additions and 437 deletions

View File

@@ -44,8 +44,8 @@ func main() {
}
// a quic.Config that doesn't do a Retry
quicConf := &quic.Config{
AcceptToken: func(_ net.Addr, _ *quic.Token) bool { return true },
Tracer: qlog.NewTracer(getLogWriter),
RequireAddressValidation: func(net.Addr) bool { return testcase == "retry" },
Tracer: qlog.NewTracer(getLogWriter),
}
cert, err := tls.LoadX509KeyPair("/certs/cert.pem", "/certs/priv.key")
if err != nil {
@@ -58,15 +58,11 @@ func main() {
}
switch testcase {
case "versionnegotiation", "handshake", "transfer", "resumption", "zerortt", "multiconnect":
case "versionnegotiation", "handshake", "retry", "transfer", "resumption", "zerortt", "multiconnect":
err = runHTTP09Server(quicConf)
case "chacha20":
tlsConf.CipherSuites = []uint16{tls.TLS_CHACHA20_POLY1305_SHA256}
err = runHTTP09Server(quicConf)
case "retry":
// By default, quic-go performs a Retry on every incoming connection.
quicConf.AcceptToken = nil
err = runHTTP09Server(quicConf)
case "http3":
err = runHTTP3Server(quicConf)
default: