forked from quic-go/quic-go
expose the quic.Config in the h2quic.Server
This commit is contained in:
@@ -39,6 +39,10 @@ var (
|
||||
type Server struct {
|
||||
*http.Server
|
||||
|
||||
// By providing a quic.Config, it is possible to set parameters of the QUIC connection.
|
||||
// If nil, it uses reasonable default values.
|
||||
QuicConfig *quic.Config
|
||||
|
||||
// Private flag for demo, do not use
|
||||
CloseAfterFirstRequest bool
|
||||
|
||||
@@ -89,16 +93,12 @@ func (s *Server) serveImpl(tlsConfig *tls.Config, conn net.PacketConn) error {
|
||||
return errors.New("ListenAndServe may only be called once")
|
||||
}
|
||||
|
||||
config := quic.Config{
|
||||
Versions: protocol.SupportedVersions,
|
||||
}
|
||||
|
||||
var ln quic.Listener
|
||||
var err error
|
||||
if conn == nil {
|
||||
ln, err = quicListenAddr(s.Addr, tlsConfig, &config)
|
||||
ln, err = quicListenAddr(s.Addr, tlsConfig, s.QuicConfig)
|
||||
} else {
|
||||
ln, err = quicListen(conn, tlsConfig, &config)
|
||||
ln, err = quicListen(conn, tlsConfig, s.QuicConfig)
|
||||
}
|
||||
if err != nil {
|
||||
s.listenerMutex.Unlock()
|
||||
|
||||
@@ -385,8 +385,7 @@ var _ = Describe("H2 server", func() {
|
||||
})
|
||||
|
||||
AfterEach(func() {
|
||||
err := s.Close()
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
Expect(s.Close()).To(Succeed())
|
||||
})
|
||||
|
||||
It("may only be called once", func() {
|
||||
@@ -405,6 +404,18 @@ var _ = Describe("H2 server", func() {
|
||||
err = s.Close()
|
||||
Expect(err).NotTo(HaveOccurred())
|
||||
}, 0.5)
|
||||
|
||||
It("uses the quic.Config to start the quic server", func() {
|
||||
conf := &quic.Config{HandshakeTimeout: time.Nanosecond}
|
||||
var receivedConf *quic.Config
|
||||
quicListenAddr = func(addr string, tlsConf *tls.Config, config *quic.Config) (quic.Listener, error) {
|
||||
receivedConf = config
|
||||
return nil, errors.New("listen err")
|
||||
}
|
||||
s.QuicConfig = conf
|
||||
go s.ListenAndServe()
|
||||
Eventually(func() *quic.Config { return receivedConf }).Should(Equal(conf))
|
||||
})
|
||||
})
|
||||
|
||||
Context("ListenAndServeTLS", func() {
|
||||
|
||||
Reference in New Issue
Block a user