mirror of
https://github.com/mjl-/mox.git
synced 2024-12-26 16:33:47 +03:00
22 lines
474 B
Go
22 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"
|
||
|
}
|