mirror of
https://github.com/qdm12/gluetun.git
synced 2026-06-11 14:53:36 +02:00
PR feedback
This commit is contained in:
@@ -1,23 +1,15 @@
|
||||
package storage
|
||||
|
||||
import (
|
||||
"net/netip"
|
||||
"slices"
|
||||
|
||||
"github.com/qdm12/gluetun/internal/models"
|
||||
)
|
||||
|
||||
func copyServer(server models.Server) (serverCopy models.Server) {
|
||||
serverCopy = server
|
||||
serverCopy.IPs = copyIPs(server.IPs)
|
||||
serverCopy.IPs = slices.Clone(server.IPs)
|
||||
serverCopy.PortsTCP = slices.Clone(server.PortsTCP)
|
||||
serverCopy.PortsUDP = slices.Clone(server.PortsUDP)
|
||||
return serverCopy
|
||||
}
|
||||
|
||||
func copyIPs(toCopy []netip.Addr) (copied []netip.Addr) {
|
||||
if toCopy == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
copied = make([]netip.Addr, len(toCopy))
|
||||
copy(copied, toCopy)
|
||||
return copied
|
||||
}
|
||||
|
||||
@@ -21,43 +21,9 @@ func Test_copyServer(t *testing.T) {
|
||||
assert.Equal(t, server, serverCopy)
|
||||
// Check for mutation
|
||||
serverCopy.IPs[0] = netip.AddrFrom4([4]byte{9, 9, 9, 9})
|
||||
assert.NotEqual(t, server, serverCopy)
|
||||
}
|
||||
|
||||
func Test_copyIPs(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
testCases := map[string]struct {
|
||||
toCopy []netip.Addr
|
||||
copied []netip.Addr
|
||||
}{
|
||||
"nil": {},
|
||||
"empty": {
|
||||
toCopy: []netip.Addr{},
|
||||
copied: []netip.Addr{},
|
||||
},
|
||||
"single IP": {
|
||||
toCopy: []netip.Addr{netip.AddrFrom4([4]byte{1, 1, 1, 1})},
|
||||
copied: []netip.Addr{netip.AddrFrom4([4]byte{1, 1, 1, 1})},
|
||||
},
|
||||
"two IPs": {
|
||||
toCopy: []netip.Addr{netip.AddrFrom4([4]byte{1, 1, 1, 1}), netip.AddrFrom4([4]byte{2, 2, 2, 2})},
|
||||
copied: []netip.Addr{netip.AddrFrom4([4]byte{1, 1, 1, 1}), netip.AddrFrom4([4]byte{2, 2, 2, 2})},
|
||||
},
|
||||
}
|
||||
|
||||
for name, testCase := range testCases {
|
||||
t.Run(name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
copied := copyIPs(testCase.toCopy)
|
||||
|
||||
assert.Equal(t, testCase.copied, copied)
|
||||
|
||||
if len(copied) > 0 {
|
||||
testCase.toCopy[0] = netip.AddrFrom4([4]byte{9, 9, 9, 9})
|
||||
assert.NotEqual(t, testCase.toCopy[0], testCase.copied[0])
|
||||
}
|
||||
})
|
||||
}
|
||||
serverCopy.PortsTCP = []uint16{80}
|
||||
serverCopy.PortsUDP = []uint16{53}
|
||||
assert.NotEqual(t, server.IPs, serverCopy.IPs)
|
||||
assert.NotEqual(t, server.PortsTCP, serverCopy.PortsTCP)
|
||||
assert.NotEqual(t, server.PortsUDP, serverCopy.PortsUDP)
|
||||
}
|
||||
|
||||
@@ -123,7 +123,11 @@ func filterServer(server models.Server,
|
||||
return true
|
||||
}
|
||||
|
||||
if filterByPorts(selection, server.PortsTCP) {
|
||||
serverPorts := server.PortsUDP
|
||||
if server.VPN == vpn.OpenVPN && server.TCP {
|
||||
serverPorts = server.PortsTCP
|
||||
}
|
||||
if filterByPorts(selection, serverPorts) {
|
||||
return true
|
||||
}
|
||||
|
||||
|
||||
@@ -33,7 +33,7 @@ func parseHardcodedServers() (allServers models.AllServers) {
|
||||
providerFile, err := serversmodule.Files.Open(filename)
|
||||
if err != nil {
|
||||
const rootURL = "https://github.com/qdm12/gluetun-servers/blob/main/pkg/servers"
|
||||
panic(fmt.Sprintf("reading embedded provider file defined at %s/%s.json: %s", rootURL, filename, err))
|
||||
panic(fmt.Sprintf("reading embedded provider file defined at %s/%s: %s", rootURL, filename, err))
|
||||
}
|
||||
defer providerFile.Close() // no-op
|
||||
|
||||
|
||||
Reference in New Issue
Block a user