chore(all): use netip.Prefix for ip networks

- remove usage of `net.IPNet`
- remove usage of `netaddr.IPPrefix`
This commit is contained in:
Quentin McGaw
2023-04-27 13:41:05 +00:00
parent 801a7fd6fe
commit d21a943779
32 changed files with 344 additions and 315 deletions

View File

@@ -2,6 +2,7 @@ package utils
import (
"net"
"net/netip"
"github.com/qdm12/gluetun/internal/configuration/settings"
"github.com/qdm12/gluetun/internal/models"
@@ -25,17 +26,12 @@ func BuildWireguardSettings(connection models.Connection,
copy(settings.Endpoint.IP, connection.IP)
settings.Endpoint.Port = int(connection.Port)
settings.Addresses = make([]*net.IPNet, 0, len(userSettings.Addresses))
settings.Addresses = make([]netip.Prefix, 0, len(userSettings.Addresses))
for _, address := range userSettings.Addresses {
ipv6Address := address.IP.To4() == nil
if !ipv6Supported && ipv6Address {
if !ipv6Supported && address.Addr().Is6() {
continue
}
addressCopy := new(net.IPNet)
addressCopy.IP = make(net.IP, len(address.IP))
copy(addressCopy.IP, address.IP)
addressCopy.Mask = make(net.IPMask, len(address.Mask))
copy(addressCopy.Mask, address.Mask)
addressCopy := netip.PrefixFrom(address.Addr(), address.Bits())
settings.Addresses = append(settings.Addresses, addressCopy)
}

View File

@@ -2,6 +2,7 @@ package utils
import (
"net"
"net/netip"
"testing"
"github.com/qdm12/gluetun/internal/configuration/settings"
@@ -30,9 +31,9 @@ func Test_BuildWireguardSettings(t *testing.T) {
userSettings: settings.Wireguard{
PrivateKey: stringPtr("private"),
PreSharedKey: stringPtr("pre-shared"),
Addresses: []net.IPNet{
{IP: net.IPv4(1, 1, 1, 1), Mask: net.IPv4Mask(255, 255, 255, 255)},
{IP: net.IPv6zero, Mask: net.IPv4Mask(255, 255, 255, 255)},
Addresses: []netip.Prefix{
netip.PrefixFrom(netip.AddrFrom4([4]byte{1, 1, 1, 1}), 32),
netip.PrefixFrom(netip.AddrFrom16([16]byte{}), 32),
},
Interface: "wg1",
},
@@ -46,8 +47,8 @@ func Test_BuildWireguardSettings(t *testing.T) {
IP: net.IPv4(1, 2, 3, 4),
Port: 51821,
},
Addresses: []*net.IPNet{
{IP: net.IPv4(1, 1, 1, 1), Mask: net.IPv4Mask(255, 255, 255, 255)},
Addresses: []netip.Prefix{
netip.PrefixFrom(netip.AddrFrom4([4]byte{1, 1, 1, 1}), 32),
},
RulePriority: 101,
IPv6: boolPtr(false),