Merge pull request #1742 from gravitl/bugfix_ipv6_addressing

Fix ipv6 addressing bug
This commit is contained in:
dcarns 2022-11-18 11:12:55 -05:00 committed by GitHub
commit 6d82947027
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 4 deletions

View file

@ -309,7 +309,7 @@ func TestIpv6Network(t *testing.T) {
nodeErr := logic.CreateNode(&node1)
t.Run("Test node on network IPv6", func(t *testing.T) {
assert.Nil(t, nodeErr)
assert.Equal(t, "fde6:be04:fa5e:d076::", node1.Address6)
assert.Equal(t, "fde6:be04:fa5e:d076::1", node1.Address6)
})
}

View file

@ -267,14 +267,16 @@ func UniqueAddress6(networkName string, reverse bool) (string, error) {
return "666", err
}
net6 := iplib.Net6FromStr(network.AddressRange6)
newAddrs := net6.FirstAddress()
newAddrs, err := net6.NextIP(net6.FirstAddress())
if reverse {
newAddrs = net6.LastAddress()
newAddrs, err = net6.PreviousIP(net6.LastAddress())
}
if err != nil {
return "", err
}
for {
if IsIPUnique(networkName, newAddrs.String(), database.NODES_TABLE_NAME, true) &&
IsIPUnique(networkName, newAddrs.String(), database.EXT_CLIENT_TABLE_NAME, true) {
return newAddrs.String(), nil