add cmd options compatible with gost v2

This commit is contained in:
ginuerzh 2022-07-27 15:56:56 +08:00
parent 84255850b6
commit 1c65aae3a9

View File

@ -349,9 +349,22 @@ func buildServiceConfig(url *url.URL) (*config.ServiceConfig, error) {
KeyFile: metadata.GetString(md, "keyFile"), KeyFile: metadata.GetString(md, "keyFile"),
CAFile: metadata.GetString(md, "caFile"), CAFile: metadata.GetString(md, "caFile"),
} }
if tlsConfig.CertFile == "" {
tlsConfig.CertFile = metadata.GetString(md, "cert")
}
if tlsConfig.KeyFile == "" {
tlsConfig.KeyFile = metadata.GetString(md, "key")
}
if tlsConfig.CAFile == "" {
tlsConfig.CAFile = metadata.GetString(md, "ca")
}
delete(m, "certFile") delete(m, "certFile")
delete(m, "cert")
delete(m, "keyFile") delete(m, "keyFile")
delete(m, "key")
delete(m, "caFile") delete(m, "caFile")
delete(m, "ca")
if tlsConfig.CertFile == "" { if tlsConfig.CertFile == "" {
tlsConfig = nil tlsConfig = nil
@ -455,9 +468,22 @@ func buildNodeConfig(url *url.URL) (*config.NodeConfig, error) {
if tlsConfig.ServerName == "" { if tlsConfig.ServerName == "" {
tlsConfig.ServerName = url.Hostname() tlsConfig.ServerName = url.Hostname()
} }
if tlsConfig.CertFile == "" {
tlsConfig.CertFile = metadata.GetString(md, "cert")
}
if tlsConfig.KeyFile == "" {
tlsConfig.KeyFile = metadata.GetString(md, "key")
}
if tlsConfig.CAFile == "" {
tlsConfig.CAFile = metadata.GetString(md, "ca")
}
delete(m, "certFile") delete(m, "certFile")
delete(m, "cert")
delete(m, "keyFile") delete(m, "keyFile")
delete(m, "key")
delete(m, "caFile") delete(m, "caFile")
delete(m, "ca")
delete(m, "secure") delete(m, "secure")
delete(m, "serverName") delete(m, "serverName")
@ -528,7 +554,13 @@ func parseSelector(m map[string]any) *config.SelectorConfig {
md := metadata.NewMetadata(m) md := metadata.NewMetadata(m)
strategy := metadata.GetString(md, "strategy") strategy := metadata.GetString(md, "strategy")
maxFails := metadata.GetInt(md, "maxFails") maxFails := metadata.GetInt(md, "maxFails")
if maxFails == 0 {
maxFails = metadata.GetInt(md, "max_fails")
}
failTimeout := metadata.GetDuration(md, "failTimeout") failTimeout := metadata.GetDuration(md, "failTimeout")
if failTimeout == 0 {
failTimeout = metadata.GetDuration(md, "fail_timeout")
}
if strategy == "" && maxFails <= 0 && failTimeout <= 0 { if strategy == "" && maxFails <= 0 && failTimeout <= 0 {
return nil return nil
} }
@ -539,12 +571,14 @@ func parseSelector(m map[string]any) *config.SelectorConfig {
maxFails = 1 maxFails = 1
} }
if failTimeout <= 0 { if failTimeout <= 0 {
failTimeout = time.Second failTimeout = 30 * time.Second
} }
delete(m, "strategy") delete(m, "strategy")
delete(m, "maxFails") delete(m, "maxFails")
delete(m, "max_fails")
delete(m, "failTimeout") delete(m, "failTimeout")
delete(m, "fail_timeout")
return &config.SelectorConfig{ return &config.SelectorConfig{
Strategy: strategy, Strategy: strategy,