fix: improve gost websocket plugin handling in shadowsocks adapter

This commit is contained in:
cesaryuan 2025-03-11 21:25:44 +08:00
parent 382b08c63d
commit 5e11263ea0
2 changed files with 7 additions and 11 deletions

View file

@ -110,13 +110,13 @@ func (ss *ShadowSocks) StreamConnContext(ctx context.Context, c net.Conn, metada
c = obfs.NewHTTPObfs(c, ss.obfsOption.Host, port)
case "websocket":
var err error
c, err = v2rayObfs.NewV2rayObfs(ctx, c, ss.v2rayOption)
if err != nil {
return nil, fmt.Errorf("%s connect error: %w", ss.addr, err)
if ss.v2rayOption != nil {
c, err = v2rayObfs.NewV2rayObfs(ctx, c, ss.v2rayOption)
} else if ss.gostOption != nil {
c, err = gost.NewGostWebsocket(ctx, c, ss.gostOption)
} else {
return nil, fmt.Errorf("plugin options is required")
}
case gost.ModeWebsocket:
var err error
c, err = gost.NewGostWebsocket(ctx, c, ss.gostOption)
if err != nil {
return nil, fmt.Errorf("%s connect error: %w", ss.addr, err)
}
@ -307,7 +307,7 @@ func NewShadowSocks(option ShadowSocksOption) (*ShadowSocks, error) {
return nil, fmt.Errorf("ss %s initialize gost-plugin error: %w", addr, err)
}
if opts.Mode != gost.ModeWebsocket {
if opts.Mode != "websocket" {
return nil, fmt.Errorf("ss %s obfs mode error: %s", addr, opts.Mode)
}
obfsMode = opts.Mode

View file

@ -11,10 +11,6 @@ import (
smux "github.com/sagernet/smux"
)
const (
ModeWebsocket string = "gost-websocket"
)
// Option is options of gost websocket
type Option struct {
Host string