diff --git a/Tools/IPAddresses.go b/Tools/IPAddresses.go index 381f4f4..65e4e3d 100644 --- a/Tools/IPAddresses.go +++ b/Tools/IPAddresses.go @@ -27,7 +27,7 @@ func initIPAddresses4ThisHost() { } ip := net.ParseIP(addressText) - if !ip.IsLoopback() && !ip.IsUnspecified() { + if !ip.IsLoopback() && !ip.IsUnspecified() && strings.ToLower(ip.String()) != `fe80::1` { ipAddresses[counter] = ip.String() counter++ } diff --git a/Tools/Init.go b/Tools/Init.go index 482b0a3..069208e 100644 --- a/Tools/Init.go +++ b/Tools/Init.go @@ -1,11 +1,13 @@ package Tools import ( + "fmt" "github.com/SommerEngineering/Ocean/ConfigurationDB" "github.com/SommerEngineering/Ocean/Log" LM "github.com/SommerEngineering/Ocean/Log/Meta" "math/rand" "os" + "strings" "time" ) @@ -30,7 +32,13 @@ func init() { // Build the local IP address and port: allHostsIPAddresses := ReadAllIPAddresses4ThisHost() port := ConfigurationDB.Read(`PublicWebServerPort`) - localIPAddressAndPort = allHostsIPAddresses[0] + `:` + port + if strings.Contains(allHostsIPAddresses[0], `:`) { + // Case: IPv6 + localIPAddressAndPort = fmt.Sprintf("[%s]:%s", allHostsIPAddresses[0], port) + } else { + // Case: IPv4 + localIPAddressAndPort = fmt.Sprintf("%s:%s", allHostsIPAddresses[0], port) + } // Read the default language: defaultLanguage = ConfigurationDB.Read(`DefaultLanguageCode`)