update udp listener

This commit is contained in:
ginuerzh
2022-04-03 22:24:47 +08:00
parent eef1b9176f
commit 1c69832f5a
4 changed files with 27 additions and 21 deletions

View File

@ -6,7 +6,7 @@ import (
"net"
"strconv"
"github.com/go-gost/core/common/util/udp"
"github.com/go-gost/core/common/net/udp"
"github.com/go-gost/core/connector"
"github.com/go-gost/core/logger"
"github.com/go-gost/relay"
@ -67,11 +67,15 @@ func (c *relayConnector) bindUDP(ctx context.Context, conn net.Conn, network, ad
ln := udp.NewListener(
relay_util.UDPTunClientPacketConn(conn),
laddr,
opts.Backlog,
opts.UDPDataQueueSize, opts.UDPDataBufferSize,
opts.UDPConnTTL,
log)
&udp.ListenConfig{
Addr: laddr,
Backlog: opts.Backlog,
ReadQueueSize: opts.UDPDataQueueSize,
ReadBufferSize: opts.UDPDataBufferSize,
TTL: opts.UDPConnTTL,
KeepAlive: true,
Logger: log,
})
return ln, nil
}

View File

@ -114,7 +114,7 @@ func (h *dnsHandler) Handle(ctx context.Context, conn net.Conn, opts ...handler.
}).Infof("%s >< %s", conn.RemoteAddr(), conn.LocalAddr())
}()
b := bufpool.Get(4096)
b := bufpool.Get(defaultBufferSize)
defer bufpool.Put(b)
n, err := conn.Read(*b)
@ -165,7 +165,7 @@ func (h *dnsHandler) exchange(ctx context.Context, msg []byte, log logger.Logger
mr = h.lookupHosts(&mq, log)
if mr != nil {
b := bufpool.Get(4096)
b := bufpool.Get(defaultBufferSize)
return mr.PackBuffer(*b)
}
@ -177,7 +177,7 @@ func (h *dnsHandler) exchange(ctx context.Context, msg []byte, log logger.Logger
log.Debugf("exchange message %d (cached): %s", mq.Id, mq.Question[0].String())
mr.Id = mq.Id
b := bufpool.Get(4096)
b := bufpool.Get(defaultBufferSize)
return mr.PackBuffer(*b)
}
@ -188,7 +188,7 @@ func (h *dnsHandler) exchange(ctx context.Context, msg []byte, log logger.Logger
}()
}
b := bufpool.Get(4096)
b := bufpool.Get(defaultBufferSize)
defer bufpool.Put(b)
query, err := mq.PackBuffer(*b)

View File

@ -7,6 +7,10 @@ import (
mdata "github.com/go-gost/core/metadata"
)
const (
defaultBufferSize = 1024
)
type metadata struct {
readTimeout time.Duration
ttl time.Duration

View File

@ -3,7 +3,7 @@ package ftcp
import (
"net"
"github.com/go-gost/core/common/util/udp"
"github.com/go-gost/core/common/net/udp"
"github.com/go-gost/core/listener"
"github.com/go-gost/core/logger"
md "github.com/go-gost/core/metadata"
@ -39,11 +39,6 @@ func (l *ftcpListener) Init(md md.Metadata) (err error) {
return
}
laddr, err := net.ResolveTCPAddr("tcp", l.options.Addr)
if err != nil {
return
}
var conn net.PacketConn
conn, err = tcpraw.Listen("tcp", l.options.Addr)
if err != nil {
@ -53,11 +48,14 @@ func (l *ftcpListener) Init(md md.Metadata) (err error) {
l.ln = udp.NewListener(
conn,
laddr,
l.md.backlog,
l.md.readQueueSize, l.md.readBufferSize,
l.md.ttl,
l.logger)
&udp.ListenConfig{
Backlog: l.md.backlog,
ReadQueueSize: l.md.readQueueSize,
ReadBufferSize: l.md.readBufferSize,
TTL: l.md.ttl,
KeepAlive: true,
Logger: l.logger,
})
return
}