diff --git a/cmd/gost/main.go b/cmd/gost/main.go index 24dd58e..331ac1b 100644 --- a/cmd/gost/main.go +++ b/cmd/gost/main.go @@ -216,11 +216,6 @@ func parseChainNode(ns string) (nodes []gost.Node, err error) { case "mwss": tr = gost.MWSSTransporter(wsOpts) case "kcp": - /* - if !chain.IsEmpty() { - return nil, errors.New("KCP must be the first node in the proxy chain") - } - */ config, err := parseKCPConfig(node.Get("c")) if err != nil { return nil, err @@ -254,9 +249,6 @@ func parseChainNode(ns string) (nodes []gost.Node, err error) { tr = gost.H2CTransporter() case "obfs4": - if err := gost.Obfs4Init(node, false); err != nil { - return nil, err - } tr = gost.Obfs4Transporter() case "ohttp": tr = gost.ObfsHTTPTransporter() @@ -325,6 +317,14 @@ func parseChainNode(ns string) (nodes []gost.Node, err error) { nodes = []gost.Node{node} } + if node.Transport == "obfs4" { + for i := range nodes { + if err := gost.Obfs4Init(nodes[i], false); err != nil { + return nil, err + } + } + } + return }