From 5b1183661f6c8301a28c79e59c8e475474bd4bd3 Mon Sep 17 00:00:00 2001 From: ginuerzh Date: Tue, 24 Oct 2023 20:45:19 +0800 Subject: [PATCH] set smux version to 1 --- connector/tunnel/bind.go | 10 +++++++++- connector/tunnel/metadata.go | 3 +++ dialer/mtcp/metadata.go | 3 +++ handler/tunnel/metadata.go | 3 +++ internal/util/mux/mux.go | 2 +- listener/mtcp/metadata.go | 3 +++ 6 files changed, 22 insertions(+), 2 deletions(-) diff --git a/connector/tunnel/bind.go b/connector/tunnel/bind.go index 0560ee9..5a3fad4 100644 --- a/connector/tunnel/bind.go +++ b/connector/tunnel/bind.go @@ -13,12 +13,20 @@ import ( // Bind implements connector.Binder. func (c *tunnelConnector) Bind(ctx context.Context, conn net.Conn, network, address string, opts ...connector.BindOption) (net.Listener, error) { - log := c.options.Logger addr, cid, err := c.initTunnel(conn, network, address) if err != nil { return nil, err } + + endpoint := addr.String() + if v, _, _ := net.SplitHostPort(addr.String()); v != "" { + endpoint = v + } + log := c.options.Logger.WithFields(map[string]any{ + "endpoint": endpoint, + "tunnel": c.md.tunnelID.String(), + }) log.Infof("create tunnel on %s/%s OK, tunnel=%s, connector=%s", addr, network, c.md.tunnelID.String(), cid) session, err := mux.ServerSession(conn, c.md.muxCfg) diff --git a/connector/tunnel/metadata.go b/connector/tunnel/metadata.go index a2534e4..4839cbe 100644 --- a/connector/tunnel/metadata.go +++ b/connector/tunnel/metadata.go @@ -51,6 +51,9 @@ func (c *tunnelConnector) parseMetadata(md mdata.Metadata) (err error) { MaxReceiveBuffer: mdutil.GetInt(md, "mux.maxReceiveBuffer"), MaxStreamBuffer: mdutil.GetInt(md, "mux.maxStreamBuffer"), } + if c.md.muxCfg.Version == 0 { + c.md.muxCfg.Version = 2 + } return } diff --git a/dialer/mtcp/metadata.go b/dialer/mtcp/metadata.go index abc885c..ef23043 100644 --- a/dialer/mtcp/metadata.go +++ b/dialer/mtcp/metadata.go @@ -25,6 +25,9 @@ func (d *mtcpDialer) parseMetadata(md mdata.Metadata) (err error) { MaxReceiveBuffer: mdutil.GetInt(md, "mux.maxReceiveBuffer"), MaxStreamBuffer: mdutil.GetInt(md, "mux.maxStreamBuffer"), } + if d.md.muxCfg.Version == 0 { + d.md.muxCfg.Version = 2 + } return } diff --git a/handler/tunnel/metadata.go b/handler/tunnel/metadata.go index e4550c4..05f9d62 100644 --- a/handler/tunnel/metadata.go +++ b/handler/tunnel/metadata.go @@ -67,6 +67,9 @@ func (h *tunnelHandler) parseMetadata(md mdata.Metadata) (err error) { MaxReceiveBuffer: mdutil.GetInt(md, "mux.maxReceiveBuffer"), MaxStreamBuffer: mdutil.GetInt(md, "mux.maxStreamBuffer"), } + if h.md.muxCfg.Version == 0 { + h.md.muxCfg.Version = 2 + } h.md.hash = mdutil.GetString(md, "hash") diff --git a/internal/util/mux/mux.go b/internal/util/mux/mux.go index 15be88e..e31aec5 100644 --- a/internal/util/mux/mux.go +++ b/internal/util/mux/mux.go @@ -8,7 +8,7 @@ import ( ) const ( - defaultVersion = 2 + defaultVersion = 1 ) type Config struct { diff --git a/listener/mtcp/metadata.go b/listener/mtcp/metadata.go index b93221e..9d6458b 100644 --- a/listener/mtcp/metadata.go +++ b/listener/mtcp/metadata.go @@ -28,6 +28,9 @@ func (l *mtcpListener) parseMetadata(md md.Metadata) (err error) { MaxReceiveBuffer: mdutil.GetInt(md, "mux.maxReceiveBuffer"), MaxStreamBuffer: mdutil.GetInt(md, "mux.maxStreamBuffer"), } + if l.md.muxCfg.Version == 0 { + l.md.muxCfg.Version = 2 + } l.md.backlog = mdutil.GetInt(md, "backlog") if l.md.backlog <= 0 {