[server] Minor refactoring to QUIC configuration and listening.

This commit is contained in:
Ciprian Dorin Craciun 2021-12-17 17:01:48 +02:00
parent adbc568a79
commit 265319763c

View file

@ -1424,6 +1424,8 @@ func main_0 () (error) {
_tls2Config.NextProtos = []string { "http/1.1", "http/1.0" } _tls2Config.NextProtos = []string { "http/1.1", "http/1.0" }
} else if !_http2Disabled { } else if !_http2Disabled {
_tls2Config.NextProtos = []string { "h2" } _tls2Config.NextProtos = []string { "h2" }
} else if _bindQuic != "" {
// NOP
} else { } else {
panic ("[1b618ffe]") panic ("[1b618ffe]")
} }
@ -1438,21 +1440,18 @@ func main_0 () (error) {
_quicServer := & http3.Server {} _quicServer := & http3.Server {}
_quicServer.Server = & http.Server {
Addr : _bindQuic, _quicServer.Server = & http.Server {
Handler : _server, Handler : _server,
TLSConfig : nil, TLSConfig : nil,
MaxHeaderBytes : _httpsServer.ReadBufferSize,
ReadTimeout : _httpsServer.ReadTimeout,
ReadHeaderTimeout : _httpsServer.ReadTimeout,
WriteTimeout : _httpsServer.WriteTimeout,
IdleTimeout : _httpsServer.IdleTimeout,
} }
_quicTlsConfig := _tlsConfig.Clone ()
_quicTlsConfig.NextProtos = []string { "h3", "h3-29" }
_quicServer.Server.TLSConfig = _quicTlsConfig
_quicServer.QuicConfig = & quic.Config { _quicServer.QuicConfig = & quic.Config {
Versions : []quic.VersionNumber { Versions : []quic.VersionNumber {
@ -1475,8 +1474,11 @@ func main_0 () (error) {
} }
_quicTlsConfig := _tlsConfig.Clone () if !_quiet {
_quicServer.Server.TLSConfig = _quicTlsConfig _quicServer.Server.ErrorLog = log.New (os.Stderr, log.Prefix () + "[ee] [a6af7354] [quic] ", 0)
} else {
_quicServer.Server.ErrorLog = log.New (ioutil.Discard, "", 0)
}
@ -1496,12 +1498,6 @@ func main_0 () (error) {
_https2Server.WriteTimeout = 0 _https2Server.WriteTimeout = 0
_https2Server.IdleTimeout = 0 _https2Server.IdleTimeout = 0
// NOTE: Are these actually used by QUIC?
_quicServer.ReadTimeout = 0
_quicServer.ReadHeaderTimeout = 0
_quicServer.WriteTimeout = 0
_quicServer.IdleTimeout = 0
} }
@ -1566,15 +1562,27 @@ func main_0 () (error) {
if _listener_0, _error := reuseport.Listen ("tcp4", _bindTls2); _error == nil { if _listener_0, _error := reuseport.Listen ("tcp4", _bindTls2); _error == nil {
_https2Listener = _listener_0 _https2Listener = _listener_0
} else { } else {
AbortError (_error, "[63567445] failed creating HTTPS+2 listener!") AbortError (_error, "[63567445] [bind-2] failed creating TCP listener!")
}
}
var _quicListener net.PacketConn
if _bindQuic != "" {
if _listener_0, _error := net.ListenPacket ("udp4", _bindQuic); _error == nil {
_quicListener = _listener_0
} else {
AbortError (_error, "[3b1bfc15] [bind-3] failed creating UDP listener!")
} }
} }
var _splitListenerClose func () () var _splitListenerClose func () ()
if (_httpsListener != nil) && (_https2Listener == nil) && !_http2Disabled { if (_httpsListener != nil) && (_https2Listener == nil) && !_http2Disabled {
log.Printf ("[ii] [1098a405] listening on `https://%s/` (using Go HTTP supporting only HTTP/2 split);\n", _bindTls) log.Printf ("[ii] [1098a405] [bind-1] listening on `https://%s/` (using Go HTTP supporting only HTTP/2 split);\n", _bindTls)
_tlsConfig.NextProtos = []string { "h2", "http/1.1", "http/1.0" } _tlsConfig.NextProtos = append ([]string { "h2" }, _tlsConfig.NextProtos ...)
if !_quiet {
log.Printf ("[ii] [ba970bbb] [bind-1] advertising TLS next protocols: %s", _tlsConfig.NextProtos)
}
_tlsListener := tls.NewListener (_httpsListener, _tlsConfig) _tlsListener := tls.NewListener (_httpsListener, _tlsConfig)
_httpsListener_0 := & splitListener { _httpsListener_0 := & splitListener {
listener : _tlsListener, listener : _tlsListener,
@ -1659,7 +1667,7 @@ func main_0 () (error) {
if _https2Listener != nil { if _https2Listener != nil {
_server.https2Server = _https2Server _server.https2Server = _https2Server
} }
if _bindQuic != "" { if _quicListener != nil {
_server.quicServer = _quicServer _server.quicServer = _quicServer
} }
@ -1734,7 +1742,7 @@ func main_0 () (error) {
if !_quiet { if !_quiet {
log.Printf ("[ii] [4cf834b0] starting QUIC server...\n") log.Printf ("[ii] [4cf834b0] starting QUIC server...\n")
} }
if _error := _server.quicServer.Serve (nil); (_error != nil) && (_error.Error () != "server closed") { if _error := _server.quicServer.Serve (_quicListener); (_error != nil) && (_error.Error () != "server closed") {
AbortError (_error, "[73e700c5] failed executing server!") AbortError (_error, "[73e700c5] failed executing server!")
} }
if !_quiet { if !_quiet {