This commit is contained in:
parent
36cf69c1f5
commit
f73903d216
|
@ -772,6 +772,8 @@ func main() {
|
|||
|
||||
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.")
|
||||
|
||||
flag.Parse()
|
||||
|
@ -916,42 +918,45 @@ func main() {
|
|||
}
|
||||
}(&wg)
|
||||
|
||||
wg.Add(1)
|
||||
go func(wg *sync.WaitGroup) {
|
||||
defer wg.Done()
|
||||
if *http3Option {
|
||||
|
||||
server := &http3.Server{
|
||||
Server: &http.Server{
|
||||
Addr: *listenAddress,
|
||||
TLSConfig: &tls.Config{
|
||||
GetCertificate: func(info *tls.ClientHelloInfo) (*tls.Certificate, error) {
|
||||
if isSNIAllowed(info.ServerName) {
|
||||
return &serverCertificate, nil
|
||||
}
|
||||
return &bogusCertificate, nil
|
||||
wg.Add(1)
|
||||
go func(wg *sync.WaitGroup) {
|
||||
defer wg.Done()
|
||||
|
||||
server := &http3.Server{
|
||||
Server: &http.Server{
|
||||
Addr: *listenAddress,
|
||||
TLSConfig: &tls.Config{
|
||||
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{}
|
||||
server.SetQuicHeaders(h)
|
||||
extraHeadersMutex.Lock()
|
||||
extraHeaders["Alt-Svc"] = h.Get("Alt-Svc")
|
||||
extraHeadersMutex.Unlock()
|
||||
h := http.Header{}
|
||||
server.SetQuicHeaders(h)
|
||||
extraHeadersMutex.Lock()
|
||||
extraHeaders["Alt-Svc"] = h.Get("Alt-Svc")
|
||||
extraHeadersMutex.Unlock()
|
||||
|
||||
log.Printf("Serving UDP on %s", *listenAddress)
|
||||
err = server.ListenAndServe()
|
||||
if err != nil {
|
||||
log.Panic(err)
|
||||
}
|
||||
}(&wg)
|
||||
log.Printf("Serving UDP on %s", *listenAddress)
|
||||
err = server.ListenAndServe()
|
||||
if err != nil {
|
||||
log.Panic(err)
|
||||
}
|
||||
}(&wg)
|
||||
|
||||
}
|
||||
wg.Wait()
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue