Browse Source

fixed issue around setting ipv6 or not unnecessarily

0xdcarns 3 years ago
parent
commit
3298a074bb
2 changed files with 24 additions and 16 deletions
  1. 14 10
      logic/extpeers.go
  2. 10 6
      logic/nodes.go

+ 14 - 10
logic/extpeers.go

@@ -130,20 +130,24 @@ func CreateExtClient(extclient *models.ExtClient) error {
 		return err
 	}
 
-	if extclient.Address == "" && parentNetwork.IsIPv4 == "yes" {
-		newAddress, err := UniqueAddress(extclient.Network, false)
-		if err != nil {
-			return err
+	if extclient.Address == "" {
+		if parentNetwork.IsIPv4 == "yes" {
+			newAddress, err := UniqueAddress(extclient.Network, false)
+			if err != nil {
+				return err
+			}
+			extclient.Address = newAddress
 		}
-		extclient.Address = newAddress
 	}
 
-	if extclient.Address6 == "" && parentNetwork.IsIPv6 == "yes" {
-		addr6, err := UniqueAddress6(extclient.Network, false)
-		if err != nil {
-			return err
+	if extclient.Address6 == "" {
+		if parentNetwork.IsIPv6 == "yes" {
+			addr6, err := UniqueAddress6(extclient.Network, false)
+			if err != nil {
+				return err
+			}
+			extclient.Address6 = addr6
 		}
-		extclient.Address6 = addr6
 	}
 
 	if extclient.ClientID == "" {

+ 10 - 6
logic/nodes.go

@@ -279,17 +279,21 @@ func CreateNode(node *models.Node) error {
 	}
 
 	reverse := node.IsServer == "yes"
-	if node.Address == "" && parentNetwork.IsIPv4 == "yes" {
-		if node.Address, err = UniqueAddress(node.Network, reverse); err != nil {
-			return err
+	if node.Address == "" {
+		if 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 == "" && parentNetwork.IsIPv6 == "yes" {
-		if node.Address6, err = UniqueAddress6(node.Network, reverse); err != nil {
-			return err
+	if node.Address6 == "" {
+		if 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) {
 		return fmt.Errorf("invalid address: ipv6 " + node.Address6 + " is not unique")