diff --git a/handler/router/associate.go b/handler/router/associate.go index d6f20e7e..cad7e039 100644 --- a/handler/router/associate.go +++ b/handler/router/associate.go @@ -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 diff --git a/handler/router/entrypoint.go b/handler/router/entrypoint.go index 8b794a4b..0f952dfd 100644 --- a/handler/router/entrypoint.go +++ b/handler/router/entrypoint.go @@ -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 } diff --git a/handler/router/metadata.go b/handler/router/metadata.go index e3c125b0..923b3561 100644 --- a/handler/router/metadata.go +++ b/handler/router/metadata.go @@ -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"))