fix dtls connection
This commit is contained in:
@ -12,6 +12,7 @@ import (
|
||||
admission "github.com/go-gost/x/admission/wrapper"
|
||||
xnet "github.com/go-gost/x/internal/net"
|
||||
"github.com/go-gost/x/internal/net/proxyproto"
|
||||
xdtls "github.com/go-gost/x/internal/util/dtls"
|
||||
climiter "github.com/go-gost/x/limiter/conn/wrapper"
|
||||
limiter "github.com/go-gost/x/limiter/traffic/wrapper"
|
||||
metrics "github.com/go-gost/x/metrics/wrapper"
|
||||
@ -88,7 +89,12 @@ func (l *dtlsListener) Init(md md.Metadata) (err error) {
|
||||
}
|
||||
|
||||
func (l *dtlsListener) Accept() (conn net.Conn, err error) {
|
||||
return l.ln.Accept()
|
||||
c, err := l.ln.Accept()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
conn = xdtls.Conn(c, l.md.bufferSize)
|
||||
return
|
||||
}
|
||||
|
||||
func (l *dtlsListener) Addr() net.Addr {
|
||||
|
@ -7,19 +7,24 @@ import (
|
||||
mdutil "github.com/go-gost/core/metadata/util"
|
||||
)
|
||||
|
||||
const (
|
||||
defaultBufferSize = 1200
|
||||
)
|
||||
|
||||
type metadata struct {
|
||||
mtu int
|
||||
bufferSize int
|
||||
flightInterval time.Duration
|
||||
}
|
||||
|
||||
func (l *dtlsListener) parseMetadata(md mdata.Metadata) (err error) {
|
||||
const (
|
||||
mtu = "mtu"
|
||||
flightInterval = "flightInterval"
|
||||
)
|
||||
l.md.mtu = mdutil.GetInt(md, "dtls.mtu", "mtu")
|
||||
l.md.bufferSize = mdutil.GetInt(md, "dtls.bufferSize", "bufferSize")
|
||||
if l.md.bufferSize <= 0 {
|
||||
l.md.bufferSize = defaultBufferSize
|
||||
}
|
||||
|
||||
l.md.mtu = mdutil.GetInt(md, mtu)
|
||||
l.md.flightInterval = mdutil.GetDuration(md, flightInterval)
|
||||
l.md.flightInterval = mdutil.GetDuration(md, "dtls.flightInterval", "flightInterval")
|
||||
|
||||
return nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user