mirror of
https://github.com/mjl-/mox.git
synced 2024-12-27 00:43:48 +03:00
21 lines
474 B
Go
21 lines
474 B
Go
package mox
|
|
|
|
import (
|
|
"net"
|
|
)
|
|
|
|
// Network returns tcp4 or tcp6, depending on the ip.
|
|
// This network can be passed to Listen instead of "tcp", which may start listening
|
|
// on both ipv4 and ipv6 for addresses 0.0.0.0 and ::, which can lead to errors
|
|
// about the port already being in use.
|
|
// For invalid IPs, "tcp" is returned.
|
|
func Network(ip string) string {
|
|
v := net.ParseIP(ip)
|
|
if v == nil {
|
|
return "tcp"
|
|
}
|
|
if v.To4() != nil {
|
|
return "tcp4"
|
|
}
|
|
return "tcp6"
|
|
}
|