prevent nodes from changing address out of range or to .0 or .255 addresses

This commit is contained in:
0xdcarns
2022-01-19 10:44:00 -05:00
parent de8c4d782d
commit 2430eb0a47
6 changed files with 43 additions and 18 deletions

View File

@@ -111,6 +111,13 @@ func IsLeader(node *models.Node) bool {
// UpdateNode - takes a node and updates another node with it's values
func UpdateNode(currentNode *models.Node, newNode *models.Node) error {
if newNode.Address != currentNode.Address {
if network, err := GetParentNetwork(newNode.Network); err == nil {
if !IsAddressInCIDR(newNode.Address, network.AddressRange) {
return fmt.Errorf("invalid address provided; out of network range for node %s", newNode.ID)
}
}
}
newNode.Fill(currentNode)
if err := ValidateNode(newNode, true); err != nil {
return err