remove goto

This commit is contained in:
Unrud 2018-07-31 20:18:52 +02:00
parent a9230ceea4
commit 57d3747968

22
host.go
View file

@ -25,8 +25,8 @@ import (
"strings" "strings"
) )
func FindDefaultHost() string { func FindDefaultHost() (host string) {
fallbackAddr := "" host = "localhost"
for _, publicIP := range []string{"2001:4860:4860::8888", "8.8.8.8"} { for _, publicIP := range []string{"2001:4860:4860::8888", "8.8.8.8"} {
addr := fmt.Sprintf("[%s]:80", publicIP) addr := fmt.Sprintf("[%s]:80", publicIP)
conn, err := net.Dial("udp", addr) conn, err := net.Dial("udp", addr)
@ -34,15 +34,15 @@ func FindDefaultHost() string {
continue continue
} }
conn.Close() conn.Close()
host, _, err := net.SplitHostPort(conn.LocalAddr().String()) host, _, err = net.SplitHostPort(conn.LocalAddr().String())
if err != nil { if err != nil {
continue panic(err)
} }
return host return
} }
interfaces, err := net.Interfaces() interfaces, err := net.Interfaces()
if err != nil { if err != nil {
goto fallback return
} }
for _, inter := range interfaces { for _, inter := range interfaces {
if inter.Flags&net.FlagUp == 0 || inter.Flags&net.FlagLoopback != 0 { if inter.Flags&net.FlagUp == 0 || inter.Flags&net.FlagLoopback != 0 {
@ -58,8 +58,8 @@ func FindDefaultHost() string {
if err != nil { if err != nil {
continue continue
} }
if fallbackAddr == "" { if host == "localhost" {
fallbackAddr = ip.String() host = ip.String()
} }
for _, linkLocalPrefix := range []string{ for _, linkLocalPrefix := range []string{
"169.254.", "fe8", "fe9", "fea", "feb"} { "169.254.", "fe8", "fe9", "fea", "feb"} {
@ -71,9 +71,5 @@ func FindDefaultHost() string {
} }
} }
fallback: return
if fallbackAddr != "" {
return fallbackAddr
}
return "localhost"
} }