mirror of
https://github.com/qdm12/gluetun.git
synced 2025-12-10 09:18:30 -06:00
37 lines
932 B
Go
37 lines
932 B
Go
package settings
|
|
|
|
import (
|
|
"net/netip"
|
|
|
|
"inet.af/netaddr"
|
|
)
|
|
|
|
func netipAddressToNetaddrIP(address netip.Addr) (ip netaddr.IP) {
|
|
if address.Is4() {
|
|
return netaddr.IPFrom4(address.As4())
|
|
}
|
|
return netaddr.IPFrom16(address.As16())
|
|
}
|
|
|
|
func netipAddressesToNetaddrIPs(addresses []netip.Addr) (ips []netaddr.IP) {
|
|
ips = make([]netaddr.IP, len(addresses))
|
|
for i := range addresses {
|
|
ips[i] = netipAddressToNetaddrIP(addresses[i])
|
|
}
|
|
return ips
|
|
}
|
|
|
|
func netipPrefixToNetaddrIPPrefix(prefix netip.Prefix) (ipPrefix netaddr.IPPrefix) {
|
|
netaddrIP := netipAddressToNetaddrIP(prefix.Addr())
|
|
bits := prefix.Bits()
|
|
return netaddr.IPPrefixFrom(netaddrIP, uint8(bits))
|
|
}
|
|
|
|
func netipPrefixesToNetaddrIPPrefixes(prefixes []netip.Prefix) (ipPrefixes []netaddr.IPPrefix) {
|
|
ipPrefixes = make([]netaddr.IPPrefix, len(prefixes))
|
|
for i := range ipPrefixes {
|
|
ipPrefixes[i] = netipPrefixToNetaddrIPPrefix(prefixes[i])
|
|
}
|
|
return ipPrefixes
|
|
}
|