1
0
mirror of https://github.com/StackExchange/dnscontrol.git synced 2024-05-11 05:55:12 +00:00
What could possibly go wrong?
This commit is contained in:
Tom Limoncelli
2020-06-18 09:37:57 -04:00
committed by GitHub
parent 84fd4ae33e
commit 676d98fc4a
2656 changed files with 225 additions and 773200 deletions

View File

@@ -6,8 +6,8 @@ import (
"strings"
)
// IpConversion describes an IP conversion.
type IpConversion struct {
// IPConversion describes an IP conversion.
type IPConversion struct {
Low, High net.IP
NewBases []net.IP
NewIPs []net.IP
@@ -32,8 +32,8 @@ func UintToIP(u uint32) net.IP {
}
// DecodeTransformTable turns a string-encoded table into a list of conversions.
func DecodeTransformTable(transforms string) ([]IpConversion, error) {
result := []IpConversion{}
func DecodeTransformTable(transforms string) ([]IPConversion, error) {
result := []IPConversion{}
rows := strings.Split(transforms, ";")
for ri, row := range rows {
items := strings.Split(row, "~")
@@ -44,7 +44,7 @@ func DecodeTransformTable(transforms string) ([]IpConversion, error) {
items[i] = strings.TrimSpace(item)
}
con := IpConversion{
con := IPConversion{
Low: net.ParseIP(items[0]),
High: net.ParseIP(items[1]),
}
@@ -85,20 +85,20 @@ func DecodeTransformTable(transforms string) ([]IpConversion, error) {
return result, nil
}
// TransformIP transforms a single ip address. If the transform results in multiple new targets, an error will be returned.
func TransformIP(address net.IP, transforms []IpConversion) (net.IP, error) {
ips, err := TransformIPToList(address, transforms)
// IP transforms a single ip address. If the transform results in multiple new targets, an error will be returned.
func IP(address net.IP, transforms []IPConversion) (net.IP, error) {
ips, err := IPToList(address, transforms)
if err != nil {
return nil, err
}
if len(ips) != 1 {
return nil, fmt.Errorf("Expect exactly one ip for TransformIP result. Got: %s", ips)
return nil, fmt.Errorf("Expect exactly one ip for IP result. Got: %s", ips)
}
return ips[0], err
}
// TransformIPToList manipulates an net.IP based on a list of IpConversions. It can potentially expand one ip address into multiple addresses.
func TransformIPToList(address net.IP, transforms []IpConversion) ([]net.IP, error) {
// IPToList manipulates an net.IP based on a list of IPConversions. It can potentially expand one ip address into multiple addresses.
func IPToList(address net.IP, transforms []IPConversion) ([]net.IP, error) {
thisIP, err := ipToUint(address)
if err != nil {
return nil, err

View File

@@ -103,9 +103,9 @@ func Test_DecodeTransformTable_Base_and_IP(t *testing.T) {
}
}
func Test_TransformIP(t *testing.T) {
func Test_IP(t *testing.T) {
var transforms1 = []IpConversion{{
var transforms1 = []IPConversion{{
Low: net.ParseIP("11.11.11.0"),
High: net.ParseIP("11.11.11.20"),
NewBases: []net.IP{net.ParseIP("99.99.99.0")},
@@ -156,7 +156,7 @@ func Test_TransformIP(t *testing.T) {
for _, test := range tests {
experiment := net.ParseIP(test.experiment)
actual, err := TransformIPToList(experiment, transforms1)
actual, err := IPToList(experiment, transforms1)
if err != nil {
t.Errorf("%v: got an err: %v\n", experiment, err)
}
@@ -171,9 +171,9 @@ func Test_TransformIP(t *testing.T) {
}
}
func Test_TransformIP_NewIP(t *testing.T) {
func Test_IP_NewIP(t *testing.T) {
var transforms1 = []IpConversion{{
var transforms1 = []IPConversion{{
Low: net.ParseIP("11.11.11.0"),
High: net.ParseIP("11.11.11.20"),
NewIPs: []net.IP{net.ParseIP("1.1.1.1")},
@@ -213,7 +213,7 @@ func Test_TransformIP_NewIP(t *testing.T) {
for _, test := range tests {
experiment := net.ParseIP(test.experiment)
expected := net.ParseIP(test.expected)
actual, err := TransformIP(experiment, transforms1)
actual, err := IP(experiment, transforms1)
if err != nil {
t.Errorf("%v: got an err: %v\n", experiment, err)
}