chore(all): replace net.IP with netip.Addr
This commit is contained in:
@@ -1,14 +1,14 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"net"
|
||||
"net/netip"
|
||||
)
|
||||
|
||||
type Connection struct {
|
||||
// Type is the connection type and can be "openvpn" or "wireguard"
|
||||
Type string `json:"type"`
|
||||
// IP is the VPN server IP address.
|
||||
IP net.IP `json:"ip"`
|
||||
IP netip.Addr `json:"ip"`
|
||||
// Port is the VPN server port.
|
||||
Port uint16 `json:"port"`
|
||||
// Protocol can be "tcp" or "udp".
|
||||
@@ -24,15 +24,15 @@ type Connection struct {
|
||||
}
|
||||
|
||||
func (c *Connection) Equal(other Connection) bool {
|
||||
return c.IP.Equal(other.IP) && c.Port == other.Port &&
|
||||
return c.IP.Compare(other.IP) == 0 && c.Port == other.Port &&
|
||||
c.Protocol == other.Protocol && c.Hostname == other.Hostname &&
|
||||
c.ServerName == other.ServerName && c.PubKey == other.PubKey
|
||||
}
|
||||
|
||||
// UpdateEmptyWith updates each field of the connection where the
|
||||
// value is not set using the value given as arguments.
|
||||
func (c *Connection) UpdateEmptyWith(ip net.IP, port uint16, protocol string) {
|
||||
if c.IP == nil {
|
||||
func (c *Connection) UpdateEmptyWith(ip netip.Addr, port uint16, protocol string) {
|
||||
if !c.IP.IsValid() {
|
||||
c.IP = ip
|
||||
}
|
||||
if c.Port == 0 {
|
||||
|
||||
@@ -1,22 +1,24 @@
|
||||
package models
|
||||
|
||||
import "net"
|
||||
import (
|
||||
"net/netip"
|
||||
)
|
||||
|
||||
type PublicIP struct {
|
||||
IP net.IP `json:"public_ip,omitempty"`
|
||||
Region string `json:"region,omitempty"`
|
||||
Country string `json:"country,omitempty"`
|
||||
City string `json:"city,omitempty"`
|
||||
Hostname string `json:"hostname,omitempty"`
|
||||
Location string `json:"location,omitempty"`
|
||||
Organization string `json:"organization,omitempty"`
|
||||
PostalCode string `json:"postal_code,omitempty"`
|
||||
Timezone string `json:"timezone,omitempty"`
|
||||
IP netip.Addr `json:"public_ip,omitempty"`
|
||||
Region string `json:"region,omitempty"`
|
||||
Country string `json:"country,omitempty"`
|
||||
City string `json:"city,omitempty"`
|
||||
Hostname string `json:"hostname,omitempty"`
|
||||
Location string `json:"location,omitempty"`
|
||||
Organization string `json:"organization,omitempty"`
|
||||
PostalCode string `json:"postal_code,omitempty"`
|
||||
Timezone string `json:"timezone,omitempty"`
|
||||
}
|
||||
|
||||
func (p *PublicIP) Copy() (publicIPCopy PublicIP) {
|
||||
publicIPCopy = PublicIP{
|
||||
IP: make(net.IP, len(p.IP)),
|
||||
IP: p.IP,
|
||||
Region: p.Region,
|
||||
Country: p.Country,
|
||||
City: p.City,
|
||||
@@ -26,6 +28,5 @@ func (p *PublicIP) Copy() (publicIPCopy PublicIP) {
|
||||
PostalCode: p.PostalCode,
|
||||
Timezone: p.Timezone,
|
||||
}
|
||||
copy(publicIPCopy.IP, p.IP)
|
||||
return publicIPCopy
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ package models
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
"net"
|
||||
"net/netip"
|
||||
"reflect"
|
||||
"strings"
|
||||
|
||||
@@ -13,26 +13,26 @@ import (
|
||||
type Server struct {
|
||||
VPN string `json:"vpn,omitempty"`
|
||||
// Surfshark: country is also used for multi-hop
|
||||
Country string `json:"country,omitempty"`
|
||||
Region string `json:"region,omitempty"`
|
||||
City string `json:"city,omitempty"`
|
||||
ISP string `json:"isp,omitempty"`
|
||||
Owned bool `json:"owned,omitempty"`
|
||||
Number uint16 `json:"number,omitempty"`
|
||||
ServerName string `json:"server_name,omitempty"`
|
||||
Hostname string `json:"hostname,omitempty"`
|
||||
TCP bool `json:"tcp,omitempty"`
|
||||
UDP bool `json:"udp,omitempty"`
|
||||
OvpnX509 string `json:"x509,omitempty"`
|
||||
RetroLoc string `json:"retroloc,omitempty"` // TODO remove in v4
|
||||
MultiHop bool `json:"multihop,omitempty"`
|
||||
WgPubKey string `json:"wgpubkey,omitempty"`
|
||||
Free bool `json:"free,omitempty"`
|
||||
Stream bool `json:"stream,omitempty"`
|
||||
Premium bool `json:"premium,omitempty"`
|
||||
PortForward bool `json:"port_forward,omitempty"`
|
||||
Keep bool `json:"keep,omitempty"`
|
||||
IPs []net.IP `json:"ips,omitempty"`
|
||||
Country string `json:"country,omitempty"`
|
||||
Region string `json:"region,omitempty"`
|
||||
City string `json:"city,omitempty"`
|
||||
ISP string `json:"isp,omitempty"`
|
||||
Owned bool `json:"owned,omitempty"`
|
||||
Number uint16 `json:"number,omitempty"`
|
||||
ServerName string `json:"server_name,omitempty"`
|
||||
Hostname string `json:"hostname,omitempty"`
|
||||
TCP bool `json:"tcp,omitempty"`
|
||||
UDP bool `json:"udp,omitempty"`
|
||||
OvpnX509 string `json:"x509,omitempty"`
|
||||
RetroLoc string `json:"retroloc,omitempty"` // TODO remove in v4
|
||||
MultiHop bool `json:"multihop,omitempty"`
|
||||
WgPubKey string `json:"wgpubkey,omitempty"`
|
||||
Free bool `json:"free,omitempty"`
|
||||
Stream bool `json:"stream,omitempty"`
|
||||
Premium bool `json:"premium,omitempty"`
|
||||
PortForward bool `json:"port_forward,omitempty"`
|
||||
Keep bool `json:"keep,omitempty"`
|
||||
IPs []netip.Addr `json:"ips,omitempty"`
|
||||
}
|
||||
|
||||
var (
|
||||
@@ -72,13 +72,13 @@ func (s *Server) Equal(other Server) (equal bool) {
|
||||
return reflect.DeepEqual(serverCopy, other)
|
||||
}
|
||||
|
||||
func ipsAreEqual(a, b []net.IP) (equal bool) {
|
||||
func ipsAreEqual(a, b []netip.Addr) (equal bool) {
|
||||
if len(a) != len(b) {
|
||||
return false
|
||||
}
|
||||
|
||||
for i := range a {
|
||||
if !a[i].Equal(b[i]) {
|
||||
if a[i].Compare(b[i]) != 0 {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"net"
|
||||
"net/netip"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
@@ -17,28 +17,28 @@ func Test_Server_Equal(t *testing.T) {
|
||||
}{
|
||||
"same IPs": {
|
||||
a: &Server{
|
||||
IPs: []net.IP{net.IPv4(1, 2, 3, 4)},
|
||||
IPs: []netip.Addr{netip.AddrFrom4([4]byte{1, 2, 3, 4})},
|
||||
},
|
||||
b: Server{
|
||||
IPs: []net.IP{net.IPv4(1, 2, 3, 4)},
|
||||
IPs: []netip.Addr{netip.AddrFrom4([4]byte{1, 2, 3, 4})},
|
||||
},
|
||||
equal: true,
|
||||
},
|
||||
"same IP strings": {
|
||||
a: &Server{
|
||||
IPs: []net.IP{net.IPv4(1, 2, 3, 4)},
|
||||
IPs: []netip.Addr{netip.AddrFrom4([4]byte{1, 2, 3, 4})},
|
||||
},
|
||||
b: Server{
|
||||
IPs: []net.IP{{1, 2, 3, 4}},
|
||||
IPs: []netip.Addr{netip.AddrFrom4([4]byte{1, 2, 3, 4})},
|
||||
},
|
||||
equal: true,
|
||||
},
|
||||
"different IPs": {
|
||||
a: &Server{
|
||||
IPs: []net.IP{{1, 2, 3, 4}, {2, 3, 4, 5}},
|
||||
IPs: []netip.Addr{netip.AddrFrom4([4]byte{1, 2, 3, 4}), netip.AddrFrom4([4]byte{2, 3, 4, 5})},
|
||||
},
|
||||
b: Server{
|
||||
IPs: []net.IP{{1, 2, 3, 4}, {1, 2, 3, 4}},
|
||||
IPs: []netip.Addr{netip.AddrFrom4([4]byte{1, 2, 3, 4}), netip.AddrFrom4([4]byte{1, 2, 3, 4})},
|
||||
},
|
||||
},
|
||||
"all fields equal": {
|
||||
@@ -61,7 +61,7 @@ func Test_Server_Equal(t *testing.T) {
|
||||
Free: true,
|
||||
Stream: true,
|
||||
PortForward: true,
|
||||
IPs: []net.IP{net.IPv4(1, 2, 3, 4)},
|
||||
IPs: []netip.Addr{netip.AddrFrom4([4]byte{1, 2, 3, 4})},
|
||||
Keep: true,
|
||||
},
|
||||
b: Server{
|
||||
@@ -83,7 +83,7 @@ func Test_Server_Equal(t *testing.T) {
|
||||
Free: true,
|
||||
Stream: true,
|
||||
PortForward: true,
|
||||
IPs: []net.IP{net.IPv4(1, 2, 3, 4)},
|
||||
IPs: []netip.Addr{netip.AddrFrom4([4]byte{1, 2, 3, 4})},
|
||||
Keep: true,
|
||||
},
|
||||
equal: true,
|
||||
|
||||
Reference in New Issue
Block a user