support multiple network interfaces

This commit is contained in:
ginuerzh
2022-03-01 21:48:50 +08:00
parent 07132d8de7
commit ffdf11e89e
44 changed files with 431 additions and 474 deletions

View File

@ -145,6 +145,11 @@ func buildConfigFromCmd(services, nodes stringList) (*config.Config, error) {
md.Del("hosts")
}
if v := metadata.GetString(md, "interface"); v != "" {
hopConfig.Interface = v
md.Del("interface")
}
chain.Hops = append(chain.Hops, hopConfig)
}
@ -336,6 +341,10 @@ func buildServiceConfig(url *url.URL) (*config.ServiceConfig, error) {
if v := metadata.GetString(md, "dns"); v != "" {
md.Set("dns", strings.Split(v, ","))
}
if v := metadata.GetString(md, "interface"); v != "" {
svc.Interface = v
md.Del("interface")
}
if svc.Forwarder != nil {
svc.Forwarder.Selector = parseSelector(md)