|
@@ -389,7 +389,7 @@ func UpdateNetworkLocalAddresses(networkName string) error {
|
|
node.Address = ipaddr
|
|
node.Address = ipaddr
|
|
newNodeData, err := json.Marshal(&node)
|
|
newNodeData, err := json.Marshal(&node)
|
|
if err != nil {
|
|
if err != nil {
|
|
- fmt.Println("error in node address assignment!")
|
|
|
|
|
|
+ logger.Log(1, "error in node address assignment!")
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
database.Insert(node.ID, string(newNodeData), database.NODES_TABLE_NAME)
|
|
database.Insert(node.ID, string(newNodeData), database.NODES_TABLE_NAME)
|
|
@@ -399,6 +399,28 @@ func UpdateNetworkLocalAddresses(networkName string) error {
|
|
return nil
|
|
return nil
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// UpdateNetworkLocalAddresses - updates network localaddresses
|
|
|
|
+func UpdateNetworkHolePunching(networkName string, holepunch string) error {
|
|
|
|
+
|
|
|
|
+ nodes, err := GetNetworkNodes(networkName)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ for _, node := range nodes {
|
|
|
|
+ if node.IsServer != "yes" {
|
|
|
|
+ node.UDPHolePunch = holepunch
|
|
|
|
+ newNodeData, err := json.Marshal(&node)
|
|
|
|
+ if err != nil {
|
|
|
|
+ logger.Log(1, "error in node hole punch assignment")
|
|
|
|
+ return err
|
|
|
|
+ }
|
|
|
|
+ database.Insert(node.ID, string(newNodeData), database.NODES_TABLE_NAME)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return nil
|
|
|
|
+}
|
|
|
|
+
|
|
// RemoveNetworkNodeIPv6Addresses - removes network node IPv6 addresses
|
|
// RemoveNetworkNodeIPv6Addresses - removes network node IPv6 addresses
|
|
func RemoveNetworkNodeIPv6Addresses(networkName string) error {
|
|
func RemoveNetworkNodeIPv6Addresses(networkName string) error {
|
|
|
|
|
|
@@ -509,23 +531,24 @@ func IsNetworkNameUnique(network *models.Network) (bool, error) {
|
|
}
|
|
}
|
|
|
|
|
|
// UpdateNetwork - updates a network with another network's fields
|
|
// UpdateNetwork - updates a network with another network's fields
|
|
-func UpdateNetwork(currentNetwork *models.Network, newNetwork *models.Network) (bool, bool, error) {
|
|
|
|
|
|
+func UpdateNetwork(currentNetwork *models.Network, newNetwork *models.Network) (bool, bool, bool, error) {
|
|
if err := ValidateNetwork(newNetwork, true); err != nil {
|
|
if err := ValidateNetwork(newNetwork, true); err != nil {
|
|
- return false, false, err
|
|
|
|
|
|
+ return false, false, false, err
|
|
}
|
|
}
|
|
if newNetwork.NetID == currentNetwork.NetID {
|
|
if newNetwork.NetID == currentNetwork.NetID {
|
|
hasrangeupdate := newNetwork.AddressRange != currentNetwork.AddressRange
|
|
hasrangeupdate := newNetwork.AddressRange != currentNetwork.AddressRange
|
|
localrangeupdate := newNetwork.LocalRange != currentNetwork.LocalRange
|
|
localrangeupdate := newNetwork.LocalRange != currentNetwork.LocalRange
|
|
|
|
+ hasholepunchupdate := newNetwork.DefaultUDPHolePunch != currentNetwork.DefaultUDPHolePunch
|
|
data, err := json.Marshal(newNetwork)
|
|
data, err := json.Marshal(newNetwork)
|
|
if err != nil {
|
|
if err != nil {
|
|
- return false, false, err
|
|
|
|
|
|
+ return false, false, false, err
|
|
}
|
|
}
|
|
newNetwork.SetNetworkLastModified()
|
|
newNetwork.SetNetworkLastModified()
|
|
err = database.Insert(newNetwork.NetID, string(data), database.NETWORKS_TABLE_NAME)
|
|
err = database.Insert(newNetwork.NetID, string(data), database.NETWORKS_TABLE_NAME)
|
|
- return hasrangeupdate, localrangeupdate, err
|
|
|
|
|
|
+ return hasrangeupdate, localrangeupdate, hasholepunchupdate, err
|
|
}
|
|
}
|
|
// copy values
|
|
// copy values
|
|
- return false, false, errors.New("failed to update network " + newNetwork.NetID + ", cannot change netid.")
|
|
|
|
|
|
+ return false, false, false, errors.New("failed to update network " + newNetwork.NetID + ", cannot change netid.")
|
|
}
|
|
}
|
|
|
|
|
|
// Inc - increments an IP
|
|
// Inc - increments an IP
|