This commit is contained in:
parent
83fcb49894
commit
767e1c6f58
|
@ -90,13 +90,17 @@ func (t *quicListener) serve(ctx context.Context) error {
|
||||||
|
|
||||||
svc, conn := stun.New(t.cfg, t, packetConn)
|
svc, conn := stun.New(t.cfg, t, packetConn)
|
||||||
defer func() { _ = conn.Close() }()
|
defer func() { _ = conn.Close() }()
|
||||||
|
wrapped := &stunConnQUICWrapper{
|
||||||
|
PacketConn: conn,
|
||||||
|
underlying: packetConn.(*net.UDPConn),
|
||||||
|
}
|
||||||
|
|
||||||
go svc.Serve(ctx)
|
go svc.Serve(ctx)
|
||||||
|
|
||||||
registry.Register(t.uri.Scheme, conn)
|
registry.Register(t.uri.Scheme, wrapped)
|
||||||
defer registry.Unregister(t.uri.Scheme, conn)
|
defer registry.Unregister(t.uri.Scheme, wrapped)
|
||||||
|
|
||||||
listener, err := quic.Listen(conn, t.tlsCfg, quicConfig)
|
listener, err := quic.Listen(wrapped, t.tlsCfg, quicConfig)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
l.Infoln("Listen (BEP/quic):", err)
|
l.Infoln("Listen (BEP/quic):", err)
|
||||||
return err
|
return err
|
||||||
|
@ -213,3 +217,13 @@ func (f *quicListenerFactory) New(uri *url.URL, cfg config.Wrapper, tlsCfg *tls.
|
||||||
func (quicListenerFactory) Enabled(cfg config.Configuration) bool {
|
func (quicListenerFactory) Enabled(cfg config.Configuration) bool {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type stunConnQUICWrapper struct {
|
||||||
|
net.PacketConn
|
||||||
|
underlying *net.UDPConn
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetReadBuffer is required by QUIC.
|
||||||
|
func (s *stunConnQUICWrapper) SetReadBuffer(size int) error {
|
||||||
|
return s.underlying.SetReadBuffer(size)
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue