Update: avoid implicit params
This commit is contained in:
parent
1a56a878ac
commit
017136707a
@ -182,6 +182,8 @@ func parseChainNode(ns string) (nodes []gost.Node, err error) {
|
||||
tr = gost.WSSTransporter(wsOpts)
|
||||
case "mwss":
|
||||
tr = gost.MWSSTransporter(wsOpts)
|
||||
case "mtws":
|
||||
tr = gost.MTWSTransporter(wsOpts)
|
||||
case "kcp":
|
||||
config, err := parseKCPConfig(node.Get("c"))
|
||||
if err != nil {
|
||||
@ -231,8 +233,10 @@ func parseChainNode(ns string) (nodes []gost.Node, err error) {
|
||||
tr = gost.FakeTCPTransporter()
|
||||
case "udp":
|
||||
tr = gost.UDPTransporter()
|
||||
default:
|
||||
case "tcp":
|
||||
tr = gost.TCPTransporter()
|
||||
default:
|
||||
return nil, fmt.Errorf("unknown transport: %s", node.Transport)
|
||||
}
|
||||
|
||||
var connector gost.Connector
|
||||
@ -261,8 +265,10 @@ func parseChainNode(ns string) (nodes []gost.Node, err error) {
|
||||
connector = gost.HTTPConnector(node.User)
|
||||
case "relay":
|
||||
connector = gost.RelayConnector(node.User)
|
||||
default:
|
||||
case "auto":
|
||||
connector = gost.AutoConnector(node.User)
|
||||
default:
|
||||
return nil, fmt.Errorf("unknown connector: %s", node.Protocol)
|
||||
}
|
||||
|
||||
host := node.Get("host")
|
||||
@ -546,7 +552,7 @@ func (r *route) GenRouters() ([]router, error) {
|
||||
QueueSize: node.GetInt("queue"),
|
||||
})
|
||||
default:
|
||||
ln, err = gost.TCPListener(node.Addr)
|
||||
return nil, fmt.Errorf("unknown transport:%s", node.Transport)
|
||||
}
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -590,13 +596,10 @@ func (r *route) GenRouters() ([]router, error) {
|
||||
handler = gost.DNSHandler(node.Remote)
|
||||
case "relay":
|
||||
handler = gost.RelayHandler(node.Remote)
|
||||
default:
|
||||
// start from 2.5, if remote is not empty, then we assume that it is a forward tunnel.
|
||||
if node.Remote != "" {
|
||||
handler = gost.TCPDirectForwardHandler(node.Remote)
|
||||
} else {
|
||||
case "auto":
|
||||
handler = gost.AutoHandler()
|
||||
}
|
||||
default:
|
||||
return nil, fmt.Errorf("unknown protocol:%s", node.Protocol)
|
||||
}
|
||||
|
||||
var whitelist, blacklist *gost.Permissions
|
||||
|
20
node.go
20
node.go
@ -67,19 +67,21 @@ func ParseNode(s string) (node Node, err error) {
|
||||
schemes := strings.Split(u.Scheme, "+")
|
||||
if len(schemes) == 1 {
|
||||
node.Protocol = schemes[0]
|
||||
node.Transport = schemes[0]
|
||||
}
|
||||
if len(schemes) == 2 {
|
||||
node.Protocol = schemes[0]
|
||||
node.Transport = schemes[1]
|
||||
}
|
||||
if len(schemes) > 2 {
|
||||
return node, fmt.Errorf("unknown scheme:%s", u.Scheme)
|
||||
}
|
||||
|
||||
switch node.Transport {
|
||||
case "https":
|
||||
node.Transport = "tls"
|
||||
case "tls", "mtls":
|
||||
case "http2", "h2", "h2c":
|
||||
case "ws", "mws", "wss", "mwss":
|
||||
case "ws", "mws", "wss", "mwss", "mtws":
|
||||
case "kcp", "ssh", "quic":
|
||||
case "ssu":
|
||||
node.Transport = "udp"
|
||||
@ -90,8 +92,10 @@ func ParseNode(s string) (node Node, err error) {
|
||||
case "ftcp": // fake TCP
|
||||
case "dns":
|
||||
case "redu", "redirectu": // UDP tproxy
|
||||
default:
|
||||
case "":
|
||||
node.Transport = "tcp"
|
||||
default:
|
||||
return Node{}, fmt.Errorf("unknown transport:%s", node.Transport)
|
||||
}
|
||||
|
||||
switch node.Protocol {
|
||||
@ -112,8 +116,11 @@ func ParseNode(s string) (node Node, err error) {
|
||||
case "ftcp": // fake TCP
|
||||
case "dns", "dot", "doh":
|
||||
case "relay":
|
||||
case "":
|
||||
case "auto":
|
||||
node.Protocol = "auto"
|
||||
default:
|
||||
node.Protocol = ""
|
||||
return Node{}, fmt.Errorf("unknown protocol:%s", node.Protocol)
|
||||
}
|
||||
|
||||
return
|
||||
@ -172,12 +179,7 @@ func (node *Node) GetDuration(key string) time.Duration {
|
||||
|
||||
func (node Node) String() string {
|
||||
var scheme string
|
||||
if node.url != nil {
|
||||
scheme = node.url.Scheme
|
||||
}
|
||||
if scheme == "" {
|
||||
scheme = fmt.Sprintf("%s+%s", node.Protocol, node.Transport)
|
||||
}
|
||||
return fmt.Sprintf("%s://%s",
|
||||
scheme, node.Addr)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user