cidrset, multicidrset: directly use getIndexForIP method

Instead of constructing a *net.IPnet whose .Mask field is never used,
call the getIndexForIP method of *CidrSet and *MultiCIDRSet directly.
This commit is contained in:
Tobias Klauser 2023-05-11 10:53:03 +02:00
parent 122a459dcb
commit e7c679c362
No known key found for this signature in database
GPG Key ID: 6F5040074CCC0D04
4 changed files with 6 additions and 26 deletions

View File

@ -195,10 +195,7 @@ func (s *CidrSet) getBeginningAndEndIndices(cidr *net.IPNet) (begin, end int, er
if cidr.IP.To4() == nil {
ipSize = net.IPv6len
}
begin, err = s.getIndexForCIDR(&net.IPNet{
IP: cidr.IP.Mask(s.nodeMask),
Mask: s.nodeMask,
})
begin, err = s.getIndexForIP(cidr.IP.Mask(s.nodeMask))
if err != nil {
return -1, -1, err
}
@ -214,10 +211,7 @@ func (s *CidrSet) getBeginningAndEndIndices(cidr *net.IPNet) (begin, end int, er
binary.BigEndian.PutUint64(ip[:net.IPv6len/2], ipIntLeft)
binary.BigEndian.PutUint64(ip[net.IPv6len/2:], ipIntRight)
}
end, err = s.getIndexForCIDR(&net.IPNet{
IP: net.IP(ip).Mask(s.nodeMask),
Mask: s.nodeMask,
})
end, err = s.getIndexForIP(net.IP(ip).Mask(s.nodeMask))
if err != nil {
return -1, -1, err
}
@ -270,10 +264,6 @@ func (s *CidrSet) Occupy(cidr *net.IPNet) (err error) {
return nil
}
func (s *CidrSet) getIndexForCIDR(cidr *net.IPNet) (int, error) {
return s.getIndexForIP(cidr.IP)
}
func (s *CidrSet) getIndexForIP(ip net.IP) (int, error) {
if ip.To4() != nil {
cidrIndex := (binary.BigEndian.Uint32(s.clusterCIDR.IP) ^ binary.BigEndian.Uint32(ip.To4())) >> uint32(32-s.nodeMaskSize)

View File

@ -571,7 +571,7 @@ func TestGetBitforCIDR(t *testing.T) {
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
got, err := cs.getIndexForCIDR(subnetCIDR)
got, err := cs.getIndexForIP(subnetCIDR.IP)
if err == nil && tc.expectErr {
t.Errorf("expected error but got null")
return

View File

@ -247,10 +247,7 @@ func (s *MultiCIDRSet) getBeginningAndEndIndices(cidr *net.IPNet) (int, int, err
if netutils.IsIPv6(cidr.IP) {
ipSize = net.IPv6len
}
begin, err = s.getIndexForCIDR(&net.IPNet{
IP: cidr.IP.Mask(s.nodeMask),
Mask: s.nodeMask,
})
begin, err = s.getIndexForIP(cidr.IP.Mask(s.nodeMask))
if err != nil {
return -1, -1, err
}
@ -266,10 +263,7 @@ func (s *MultiCIDRSet) getBeginningAndEndIndices(cidr *net.IPNet) (int, int, err
binary.BigEndian.PutUint64(ip[:net.IPv6len/2], ipIntLeft)
binary.BigEndian.PutUint64(ip[net.IPv6len/2:], ipIntRight)
}
end, err = s.getIndexForCIDR(&net.IPNet{
IP: net.IP(ip).Mask(s.nodeMask),
Mask: s.nodeMask,
})
end, err = s.getIndexForIP(net.IP(ip).Mask(s.nodeMask))
if err != nil {
return -1, -1, err
}
@ -333,10 +327,6 @@ func (s *MultiCIDRSet) Occupy(cidr *net.IPNet) (err error) {
return nil
}
func (s *MultiCIDRSet) getIndexForCIDR(cidr *net.IPNet) (int, error) {
return s.getIndexForIP(cidr.IP)
}
func (s *MultiCIDRSet) getIndexForIP(ip net.IP) (int, error) {
if ip.To4() != nil {
cidrIndex := (binary.BigEndian.Uint32(s.ClusterCIDR.IP) ^ binary.BigEndian.Uint32(ip.To4())) >> uint32(32-s.NodeMaskSize)

View File

@ -584,7 +584,7 @@ func TestGetBitforCIDR(t *testing.T) {
t.Fatalf("unexpected error: %v for %v", err, tc.description)
}
got, err := cs.getIndexForCIDR(subnetCIDR)
got, err := cs.getIndexForIP(subnetCIDR.IP)
if err == nil && tc.expectErr {
logger.Error(nil, "Expected error but got null", "description", tc.description)
continue