From b51ee38db5798da0dc282bb2702cdc9fd1bf82a9 Mon Sep 17 00:00:00 2001 From: "Matthew R. Kasun" Date: Wed, 21 Dec 2022 12:04:06 -0500 Subject: [PATCH] set mask on address sent to node --- logic/nodes.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/logic/nodes.go b/logic/nodes.go index 0e20beee..8db3b38a 100644 --- a/logic/nodes.go +++ b/logic/nodes.go @@ -225,7 +225,11 @@ func CreateNode(node *models.Node) error { if node.Address.IP, err = UniqueAddress(node.Network, false); err != nil { return err } - } + _, cidr, err := net.ParseCIDR(parentNetwork.AddressRange) + if err != nil { + return err + } + node.Address.Mask = net.CIDRMask(cidr.Mask.Size()) } else if !IsIPUnique(node.Network, node.Address.String(), database.NODES_TABLE_NAME, false) { return fmt.Errorf("invalid address: ipv4 " + node.Address.String() + " is not unique") } @@ -235,6 +239,11 @@ func CreateNode(node *models.Node) error { if node.Address6.IP, err = UniqueAddress6(node.Network, false); err != nil { return err } + _, cidr, err := net.ParseCIDR(parentNetwork.AddressRange6) + if err != nil { + return err + } + node.Address6.Mask = net.CIDRMask(cidr.Mask.Size()) } } else if !IsIPUnique(node.Network, node.Address6.String(), database.NODES_TABLE_NAME, true) { return fmt.Errorf("invalid address: ipv6 " + node.Address6.String() + " is not unique")