diff options
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 18 |
1 files changed, 16 insertions, 2 deletions
@@ -10,6 +10,19 @@ import ( "sync" ) +func fmtAddress(node, port string) string { + if isIPv6(node) { + return fmt.Sprintf("[%s]:%s", node, port) + } else { + return fmt.Sprintf("%s:%s", node, port) + } +} + +func isIPv6(node string) bool { + ip := net.ParseIP(node) + return ip != nil && ip.To4() == nil +} + var wg sync.WaitGroup func Emit(pt Point) { @@ -28,9 +41,10 @@ func DoHostfile(fname string) { return } for _, address := range getAddresses(cfg) { + addressStr := fmtAddress(address.Node, address.Port) wg.Add(2) - go Emit(DoAddress(hostname, "tcp4", address)) - go Emit(DoAddress(hostname, "tcp6", address)) + go Emit(DoAddress(hostname, "tcp4", addressStr)) + go Emit(DoAddress(hostname, "tcp6", addressStr)) } } |