diff --git a/connector/tunnel/bind.go b/connector/tunnel/bind.go index 9370184..b9f5164 100644 --- a/connector/tunnel/bind.go +++ b/connector/tunnel/bind.go @@ -27,7 +27,8 @@ func (c *tunnelConnector) Bind(ctx context.Context, conn net.Conn, network, addr "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) + log.Infof("create tunnel on %s/%s OK, tunnel=%s, connector=%s, weight=%d", + addr, network, c.md.tunnelID.String(), cid, cid.Weight()) session, err := mux.ServerSession(conn, c.md.muxCfg) if err != nil { @@ -72,7 +73,7 @@ func (c *tunnelConnector) initTunnel(conn net.Conn, network, address string) (ad req.Features = append(req.Features, af) // dst address req.Features = append(req.Features, &relay.TunnelFeature{ - ID: c.md.tunnelID.ID(), + ID: c.md.tunnelID, }) if _, err = req.WriteTo(conn); err != nil { return @@ -100,7 +101,7 @@ func (c *tunnelConnector) initTunnel(conn net.Conn, network, address string) (ad } case relay.FeatureTunnel: if feature, _ := f.(*relay.TunnelFeature); feature != nil { - cid = relay.NewConnectorID(feature.ID[:]) + cid = feature.ID } } } diff --git a/connector/tunnel/connector.go b/connector/tunnel/connector.go index 8a1c6dc..2b4eb95 100644 --- a/connector/tunnel/connector.go +++ b/connector/tunnel/connector.go @@ -86,7 +86,7 @@ func (c *tunnelConnector) Connect(ctx context.Context, conn net.Conn, network, a req.Features = append(req.Features, af) // dst address req.Features = append(req.Features, &relay.TunnelFeature{ - ID: c.md.tunnelID.ID(), + ID: c.md.tunnelID, }) if _, err := req.WriteTo(conn); err != nil { diff --git a/go.mod b/go.mod index fb6b158..01089cb 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( github.com/go-gost/gosocks4 v0.0.1 github.com/go-gost/gosocks5 v0.4.0 github.com/go-gost/plugin v0.0.0-20240103125338-9c84e29cb81a - github.com/go-gost/relay v0.4.1-0.20240127152636-06a246ca1c1a + github.com/go-gost/relay v0.4.1-0.20240128081525-e36d5f4a8322 github.com/go-gost/tls-dissector v0.0.2-0.20220408131628-aac992c27451 github.com/go-redis/redis/v8 v8.11.5 github.com/gobwas/glob v0.2.3 diff --git a/go.sum b/go.sum index 5305a2d..940a516 100644 --- a/go.sum +++ b/go.sum @@ -49,8 +49,6 @@ github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg= github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= -github.com/go-gost/core v0.0.0-20240103125300-5a427b4eaf99 h1:/0hmilnQBEDlOaRcO+TlwaHH8a5ig6nc2aAsU4FGZcw= -github.com/go-gost/core v0.0.0-20240103125300-5a427b4eaf99/go.mod h1:ndkgWVYRLwupVaFFWv8ML1Nr8tD3xhHK245PLpUDg4E= github.com/go-gost/core v0.0.0-20240127130604-04314fa08476 h1:4TA4ErfFw2CsVv5K5oqqYpUn68aZFrV+ONb4aGPJ1QQ= github.com/go-gost/core v0.0.0-20240127130604-04314fa08476/go.mod h1:ndkgWVYRLwupVaFFWv8ML1Nr8tD3xhHK245PLpUDg4E= github.com/go-gost/gosocks4 v0.0.1 h1:+k1sec8HlELuQV7rWftIkmy8UijzUt2I6t+iMPlGB2s= @@ -59,10 +57,8 @@ github.com/go-gost/gosocks5 v0.4.0 h1:EIrOEkpJez4gwHrMa33frA+hHXJyevjp47thpMQsJz github.com/go-gost/gosocks5 v0.4.0/go.mod h1:1G6I7HP7VFVxveGkoK8mnprnJqSqJjdcASKsdUn4Pp4= github.com/go-gost/plugin v0.0.0-20240103125338-9c84e29cb81a h1:ME7P1Brcg4C640DSPqlvQr7JuvvQfJ8QpmS3yCFlK3A= github.com/go-gost/plugin v0.0.0-20240103125338-9c84e29cb81a/go.mod h1:qXr2Zm9Ex2ATqnWuNUzVZqySPMnuIihvblYZt4MlZLw= -github.com/go-gost/relay v0.4.1-0.20230916134211-828f314ddfe7 h1:qAG1OyjvdA5h221CfFSS3J359V3d2E7dJWyP29QoDSI= -github.com/go-gost/relay v0.4.1-0.20230916134211-828f314ddfe7/go.mod h1:lcX+23LCQ3khIeASBo+tJ/WbwXFO32/N5YN6ucuYTG8= -github.com/go-gost/relay v0.4.1-0.20240127152636-06a246ca1c1a h1:Y9BSyWFOnytIA4v3rTmw1YF1OI+ZGDF3hhFEZA8HNwg= -github.com/go-gost/relay v0.4.1-0.20240127152636-06a246ca1c1a/go.mod h1:lcX+23LCQ3khIeASBo+tJ/WbwXFO32/N5YN6ucuYTG8= +github.com/go-gost/relay v0.4.1-0.20240128081525-e36d5f4a8322 h1:R2a+Lx6XVvWdskGUUjteJ62WYBAskDHySgqNC6y8dI8= +github.com/go-gost/relay v0.4.1-0.20240128081525-e36d5f4a8322/go.mod h1:lcX+23LCQ3khIeASBo+tJ/WbwXFO32/N5YN6ucuYTG8= github.com/go-gost/tls-dissector v0.0.2-0.20220408131628-aac992c27451 h1:xj8gUZGYO3nb5+6Bjw9+tsFkA9sYynrOvDvvC4uDV2I= github.com/go-gost/tls-dissector v0.0.2-0.20220408131628-aac992c27451/go.mod h1:/9QfdewqmHdaE362Hv5nDaSWLx3pCmtD870d6GaquXs= github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= diff --git a/handler/tunnel/bind.go b/handler/tunnel/bind.go index c0ffc40..aa76849 100644 --- a/handler/tunnel/bind.go +++ b/handler/tunnel/bind.go @@ -49,7 +49,7 @@ func (h *tunnelHandler) handleBind(ctx context.Context, conn net.Conn, network, } resp.Features = append(resp.Features, af, &relay.TunnelFeature{ - ID: connectorID.ID(), + ID: connectorID, }, ) resp.WriteTo(conn) @@ -86,7 +86,7 @@ func (h *tunnelHandler) handleBind(ctx context.Context, conn net.Conn, network, } } - log.Debugf("%s/%s: tunnel=%s, connector=%s established", addr, network, tunnelID, connectorID) + log.Debugf("%s/%s: tunnel=%s, connector=%s, weight=%d established", addr, network, tunnelID, connectorID, connectorID.Weight()) return } diff --git a/handler/tunnel/handler.go b/handler/tunnel/handler.go index af385e4..0d40624 100644 --- a/handler/tunnel/handler.go +++ b/handler/tunnel/handler.go @@ -216,7 +216,7 @@ func (h *tunnelHandler) Handle(ctx context.Context, conn net.Conn, opts ...handl } case relay.FeatureTunnel: if feature, _ := f.(*relay.TunnelFeature); feature != nil { - tunnelID = relay.NewTunnelID(feature.ID[:]) + tunnelID = feature.ID } case relay.FeatureNetwork: if feature, _ := f.(*relay.NetworkFeature); feature != nil {