fix multiplex

This commit is contained in:
rui.zheng 2017-11-02 13:24:01 +08:00
parent 7c2a5faae6
commit c82f2d904d

View File

@ -137,11 +137,6 @@ func initChain() (*gost.Chain, error) {
} else {
tr = gost.SSHTunnelTransporter()
}
node.DialOptions = append(node.DialOptions,
gost.ChainDialOption(chain),
)
chain = gost.NewChain() // cutoff the chain for multiplex
case "quic":
if !chain.IsEmpty() {
return nil, errors.New("QUIC must be the first node in the proxy chain")
@ -153,22 +148,11 @@ func initChain() (*gost.Chain, error) {
tr = gost.QUICTransporter(config)
case "http2":
tr = gost.HTTP2Transporter(tlsCfg)
node.DialOptions = append(node.DialOptions,
gost.ChainDialOption(chain),
)
chain = gost.NewChain() // cutoff the chain for multiplex
case "h2":
tr = gost.H2Transporter(tlsCfg)
node.DialOptions = append(node.DialOptions,
gost.ChainDialOption(chain),
)
chain = gost.NewChain() // cutoff the chain for multiplex
case "h2c":
tr = gost.H2CTransporter()
node.DialOptions = append(node.DialOptions,
gost.ChainDialOption(chain),
)
chain = gost.NewChain() // cutoff the chain for multiplex
case "obfs4":
if err := gost.Obfs4Init(node, false); err != nil {
return nil, err
@ -180,6 +164,13 @@ func initChain() (*gost.Chain, error) {
tr = gost.TCPTransporter()
}
if tr.Multiplex() {
node.DialOptions = append(node.DialOptions,
gost.ChainDialOption(chain),
)
chain = gost.NewChain() // cutoff the chain for multiplex
}
var connector gost.Connector
switch node.Protocol {
case "http2":