MM-15325: Allowing to configure the device for detect the IP in HA clusters (#10917)

Этот коммит содержится в:
Jesús Espino
2019-06-11 20:53:03 +02:00
коммит произвёл GitHub
родитель 9445cb29f5
Коммит 969c032a1e
5 изменённых файлов: 37 добавлений и 13 удалений

Просмотреть файл

@@ -302,16 +302,35 @@ func StringFromJson(data io.Reader) string {
}
}
func GetServerIpAddress() string {
if addrs, err := net.InterfaceAddrs(); err != nil {
return ""
func GetServerIpAddress(iface string) string {
var addrs []net.Addr
if len(iface) == 0 {
var err error
addrs, err = net.InterfaceAddrs()
if err != nil {
return ""
}
} else {
for _, addr := range addrs {
if ip, ok := addr.(*net.IPNet); ok && !ip.IP.IsLoopback() && !ip.IP.IsLinkLocalUnicast() && !ip.IP.IsLinkLocalMulticast() {
if ip.IP.To4() != nil {
return ip.IP.String()
interfaces, err := net.Interfaces()
if err != nil {
return ""
}
for _, i := range interfaces {
if i.Name == iface {
addrs, err = i.Addrs()
if err != nil {
return ""
}
break
}
}
}
for _, addr := range addrs {
if ip, ok := addr.(*net.IPNet); ok && !ip.IP.IsLoopback() && !ip.IP.IsLinkLocalUnicast() && !ip.IP.IsLinkLocalMulticast() {
if ip.IP.To4() != nil {
return ip.IP.String()
}
}
}