feat(template): wrap IPv6 addresses in []

Add formatIP helper function which will wrap IPv6 addresses
in [] and print IPv4 addresses as is.

Closes #828
This commit is contained in:
Ross Guarino 2017-06-08 20:11:00 -07:00
parent c1b8a324dd
commit 54f6729dc8
3 changed files with 35 additions and 1 deletions

View file

@ -142,9 +142,24 @@ var (
"hasSuffix": strings.HasSuffix,
"toUpper": strings.ToUpper,
"toLower": strings.ToLower,
"formatIP": formatIP,
}
)
// fomatIP will wrap IPv6 addresses in [] and return IPv4 addresses
// without modification. If the input cannot be parsed as an IP address
// it is returned without modification.
func formatIP(input string) string {
ip := net.ParseIP(input)
if ip == nil {
return input
}
if v4 := ip.To4(); v4 != nil {
return input
}
return fmt.Sprintf("[%s]", input)
}
// buildResolvers returns the resolvers reading the /etc/resolv.conf file
func buildResolvers(a interface{}) string {
// NGINX need IPV6 addresses to be surrounded by brakets