set addresses appropriately based on if network is using ipv6/4

This commit is contained in:
0xdcarns
2022-04-19 14:17:21 -04:00
parent a78ebaaad1
commit ca1c75b620
3 changed files with 39 additions and 95 deletions

View File

@@ -270,20 +270,25 @@ func CreateNode(node *models.Node) error {
SetNodeDefaults(node)
if node.IsServer == "yes" {
if node.Address, err = UniqueAddressServer(node.Network); err != nil {
return err
defaultACLVal := acls.Allowed
parentNetwork, err := GetNetwork(node.Network)
if err == nil {
if parentNetwork.DefaultACL != "yes" {
defaultACLVal = acls.NotAllowed
}
} else if node.Address == "" {
if node.Address, err = UniqueAddress(node.Network); err != nil {
}
reverse := node.IsServer == "yes"
if node.Address == "" && parentNetwork.IsIPv4 == "yes" {
if node.Address, err = UniqueAddress(node.Network, reverse); err != nil {
return err
}
} else if !IsIPUnique(node.Network, node.Address, database.NODES_TABLE_NAME, false) {
return fmt.Errorf("invalid address: ipv4 " + node.Address + " is not unique")
}
if node.Address6 == "" {
if node.Address6, err = UniqueAddress6(node.Network); err != nil {
if node.Address6 == "" && parentNetwork.IsIPv6 == "yes" {
if node.Address6, err = UniqueAddress6(node.Network, reverse); err != nil {
return err
}
} else if !IsIPUnique(node.Network, node.Address6, database.NODES_TABLE_NAME, true) {
@@ -312,14 +317,6 @@ func CreateNode(node *models.Node) error {
return err
}
defaultACLVal := acls.Allowed
parentNetwork, err := GetNetwork(node.Network)
if err == nil {
if parentNetwork.DefaultACL != "yes" {
defaultACLVal = acls.NotAllowed
}
}
_, err = nodeacls.CreateNodeACL(nodeacls.NetworkID(node.Network), nodeacls.NodeID(node.ID), defaultACLVal)
if err != nil {
logger.Log(1, "failed to create node ACL for node,", node.ID, "err:", err.Error())