Disable QUIC by default
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
DataHoarder 2022-01-18 09:57:23 +01:00
parent 36cf69c1f5
commit f73903d216

View file

@ -772,6 +772,8 @@ func main() {
debugOption := flag.Bool("debug", false, "Output debug information.") debugOption := flag.Bool("debug", false, "Output debug information.")
http3Option := flag.Bool("http3", false, "Enable HTTP/3")
signatureCacheLimitOption := flag.Int("siglimit", 4096, "Maximum number of lingering valid signature cache results.") signatureCacheLimitOption := flag.Int("siglimit", 4096, "Maximum number of lingering valid signature cache results.")
flag.Parse() flag.Parse()
@ -916,42 +918,45 @@ func main() {
} }
}(&wg) }(&wg)
wg.Add(1) if *http3Option {
go func(wg *sync.WaitGroup) {
defer wg.Done()
server := &http3.Server{ wg.Add(1)
Server: &http.Server{ go func(wg *sync.WaitGroup) {
Addr: *listenAddress, defer wg.Done()
TLSConfig: &tls.Config{
GetCertificate: func(info *tls.ClientHelloInfo) (*tls.Certificate, error) { server := &http3.Server{
if isSNIAllowed(info.ServerName) { Server: &http.Server{
return &serverCertificate, nil Addr: *listenAddress,
} TLSConfig: &tls.Config{
return &bogusCertificate, nil GetCertificate: func(info *tls.ClientHelloInfo) (*tls.Certificate, error) {
if isSNIAllowed(info.ServerName) {
return &serverCertificate, nil
}
return &bogusCertificate, nil
},
}, },
Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if debugOutput {
log.Print("Received HTTP/3 request")
}
handle(NewRequestContextFromHttp(w, r))
}),
}, },
Handler: http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { }
if debugOutput {
log.Print("Received HTTP/3 request")
}
handle(NewRequestContextFromHttp(w, r))
}),
},
}
h := http.Header{} h := http.Header{}
server.SetQuicHeaders(h) server.SetQuicHeaders(h)
extraHeadersMutex.Lock() extraHeadersMutex.Lock()
extraHeaders["Alt-Svc"] = h.Get("Alt-Svc") extraHeaders["Alt-Svc"] = h.Get("Alt-Svc")
extraHeadersMutex.Unlock() extraHeadersMutex.Unlock()
log.Printf("Serving UDP on %s", *listenAddress) log.Printf("Serving UDP on %s", *listenAddress)
err = server.ListenAndServe() err = server.ListenAndServe()
if err != nil { if err != nil {
log.Panic(err) log.Panic(err)
} }
}(&wg) }(&wg)
}
wg.Wait() wg.Wait()
} }