use fixed buffer size

This commit is contained in:
ginuerzh
2025-02-18 21:04:04 +08:00
parent e0915affda
commit 69a0aa8853
3 changed files with 6 additions and 14 deletions
+2 -4
View File
@@ -121,11 +121,9 @@ func (h *routerHandler) handleAssociate(ctx context.Context, conn net.Conn, netw
log.Debugf("%s/%s: router=%s, connector=%s, weight=%d established", host, network, routerID, connectorID, connectorID.Weight())
b := bufpool.Get(h.md.bufferSize)
defer bufpool.Put(b)
var b [MaxMessageSize]byte
for {
n, err := conn.Read(b)
n, err := conn.Read(b[:])
if err != nil {
if err == io.EOF {
return nil
+2 -4
View File
@@ -3,18 +3,16 @@ package router
import (
"bytes"
"github.com/go-gost/core/common/bufpool"
"github.com/go-gost/core/logger"
"github.com/go-gost/relay"
)
func (h *routerHandler) handleEntrypoint(log logger.Logger) error {
buf := bufpool.Get(h.md.bufferSize)
defer bufpool.Put(buf)
var buf [MaxMessageSize]byte
for {
err := func() error {
n, addr, err := h.epConn.ReadFrom(buf)
n, addr, err := h.epConn.ReadFrom(buf[:])
if err != nil {
return err
}
+2 -6
View File
@@ -1,6 +1,7 @@
package router
import (
"math"
"time"
"github.com/go-gost/core/ingress"
@@ -12,14 +13,13 @@ import (
)
const (
MaxMessageSize = math.MaxUint16
defaultTTL = 15 * time.Second
defaultBufferSize = 4096
defaultCacheExpiration = time.Second
)
type metadata struct {
readTimeout time.Duration
bufferSize int
entryPoint string
ingress ingress.Ingress
@@ -40,10 +40,6 @@ type metadata struct {
func (h *routerHandler) parseMetadata(md mdata.Metadata) (err error) {
h.md.readTimeout = mdutil.GetDuration(md, "readTimeout")
h.md.bufferSize = mdutil.GetInt(md, "router.bufferSize", "bufferSize")
if h.md.bufferSize <= 0 {
h.md.bufferSize = defaultBufferSize
}
h.md.entryPoint = mdutil.GetString(md, "entrypoint")
h.md.ingress = registry.IngressRegistry().Get(mdutil.GetString(md, "ingress"))