update udp listener
This commit is contained in:
@ -6,7 +6,7 @@ import (
|
|||||||
"net"
|
"net"
|
||||||
"strconv"
|
"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/connector"
|
||||||
"github.com/go-gost/core/logger"
|
"github.com/go-gost/core/logger"
|
||||||
"github.com/go-gost/relay"
|
"github.com/go-gost/relay"
|
||||||
@ -67,11 +67,15 @@ func (c *relayConnector) bindUDP(ctx context.Context, conn net.Conn, network, ad
|
|||||||
|
|
||||||
ln := udp.NewListener(
|
ln := udp.NewListener(
|
||||||
relay_util.UDPTunClientPacketConn(conn),
|
relay_util.UDPTunClientPacketConn(conn),
|
||||||
laddr,
|
&udp.ListenConfig{
|
||||||
opts.Backlog,
|
Addr: laddr,
|
||||||
opts.UDPDataQueueSize, opts.UDPDataBufferSize,
|
Backlog: opts.Backlog,
|
||||||
opts.UDPConnTTL,
|
ReadQueueSize: opts.UDPDataQueueSize,
|
||||||
log)
|
ReadBufferSize: opts.UDPDataBufferSize,
|
||||||
|
TTL: opts.UDPConnTTL,
|
||||||
|
KeepAlive: true,
|
||||||
|
Logger: log,
|
||||||
|
})
|
||||||
|
|
||||||
return ln, nil
|
return ln, nil
|
||||||
}
|
}
|
||||||
|
@ -114,7 +114,7 @@ func (h *dnsHandler) Handle(ctx context.Context, conn net.Conn, opts ...handler.
|
|||||||
}).Infof("%s >< %s", conn.RemoteAddr(), conn.LocalAddr())
|
}).Infof("%s >< %s", conn.RemoteAddr(), conn.LocalAddr())
|
||||||
}()
|
}()
|
||||||
|
|
||||||
b := bufpool.Get(4096)
|
b := bufpool.Get(defaultBufferSize)
|
||||||
defer bufpool.Put(b)
|
defer bufpool.Put(b)
|
||||||
|
|
||||||
n, err := conn.Read(*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)
|
mr = h.lookupHosts(&mq, log)
|
||||||
if mr != nil {
|
if mr != nil {
|
||||||
b := bufpool.Get(4096)
|
b := bufpool.Get(defaultBufferSize)
|
||||||
return mr.PackBuffer(*b)
|
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())
|
log.Debugf("exchange message %d (cached): %s", mq.Id, mq.Question[0].String())
|
||||||
mr.Id = mq.Id
|
mr.Id = mq.Id
|
||||||
|
|
||||||
b := bufpool.Get(4096)
|
b := bufpool.Get(defaultBufferSize)
|
||||||
return mr.PackBuffer(*b)
|
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)
|
defer bufpool.Put(b)
|
||||||
|
|
||||||
query, err := mq.PackBuffer(*b)
|
query, err := mq.PackBuffer(*b)
|
||||||
|
@ -7,6 +7,10 @@ import (
|
|||||||
mdata "github.com/go-gost/core/metadata"
|
mdata "github.com/go-gost/core/metadata"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
defaultBufferSize = 1024
|
||||||
|
)
|
||||||
|
|
||||||
type metadata struct {
|
type metadata struct {
|
||||||
readTimeout time.Duration
|
readTimeout time.Duration
|
||||||
ttl time.Duration
|
ttl time.Duration
|
||||||
|
@ -3,7 +3,7 @@ package ftcp
|
|||||||
import (
|
import (
|
||||||
"net"
|
"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/listener"
|
||||||
"github.com/go-gost/core/logger"
|
"github.com/go-gost/core/logger"
|
||||||
md "github.com/go-gost/core/metadata"
|
md "github.com/go-gost/core/metadata"
|
||||||
@ -39,11 +39,6 @@ func (l *ftcpListener) Init(md md.Metadata) (err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
laddr, err := net.ResolveTCPAddr("tcp", l.options.Addr)
|
|
||||||
if err != nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
var conn net.PacketConn
|
var conn net.PacketConn
|
||||||
conn, err = tcpraw.Listen("tcp", l.options.Addr)
|
conn, err = tcpraw.Listen("tcp", l.options.Addr)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -53,11 +48,14 @@ func (l *ftcpListener) Init(md md.Metadata) (err error) {
|
|||||||
|
|
||||||
l.ln = udp.NewListener(
|
l.ln = udp.NewListener(
|
||||||
conn,
|
conn,
|
||||||
laddr,
|
&udp.ListenConfig{
|
||||||
l.md.backlog,
|
Backlog: l.md.backlog,
|
||||||
l.md.readQueueSize, l.md.readBufferSize,
|
ReadQueueSize: l.md.readQueueSize,
|
||||||
l.md.ttl,
|
ReadBufferSize: l.md.readBufferSize,
|
||||||
l.logger)
|
TTL: l.md.ttl,
|
||||||
|
KeepAlive: true,
|
||||||
|
Logger: l.logger,
|
||||||
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user