From 636434a0cf0caa4cea3d102b0dcf53240a35205e Mon Sep 17 00:00:00 2001 From: Uriel Fanelli Date: Mon, 14 Aug 2023 14:18:51 +0200 Subject: [PATCH] slice.Max has a bug, writing my own Max() --- interface.go | 30 +++++++----------------------- orchestrator.go | 11 +++++++++-- 2 files changed, 16 insertions(+), 25 deletions(-) diff --git a/interface.go b/interface.go index 7b6e8fd..b854d36 100644 --- a/interface.go +++ b/interface.go @@ -163,21 +163,11 @@ func (b *AbstractBridge) IsAssigned() bool { }() var ( - ief *net.Interface - addrs []net.Addr - ipv4Addr net.IP - err error - bridgeip string + ief *net.Interface + addrs []net.Addr + err error ) - brIp, _, err := net.ParseCIDR(b.BridgeIpCIDR) - if err != nil { - log.Println("IsActive : problem parsing the IP/CIDR: ", err.Error()) - return false - } else { - bridgeip = brIp.String() - } - interfaceName := b.ExistingInterface if ief, err = net.InterfaceByName(interfaceName); err != nil { // get interface @@ -196,20 +186,14 @@ func (b *AbstractBridge) IsAssigned() bool { return false } - for _, addr := range addrs { // get ipv4 address - if ipv4Addr = addr.(*net.IPNet).IP.To4(); ipv4Addr != nil { - log.Printf("Error reading IPs for interface %s\n", interfaceName) - return false - } - } - for _, addr := range addrs { - if addr.String() == bridgeip { - log.Printf("Ip %s is assigned to interface %s", bridgeip, interfaceName) + log.Println("Address found is: ", addr.String()) + if addr.String() == b.BridgeIpCIDR { + log.Printf("Ip %s is assigned to interface %s", b.BridgeIpCIDR, interfaceName) return true } } - log.Printf("Ip %s is NOT assigned to interface %s", bridgeip, interfaceName) + log.Printf("Ip %s is NOT assigned to interface %s", b.BridgeIpCIDR, interfaceName) return false } diff --git a/orchestrator.go b/orchestrator.go index b3df67e..7682f5b 100644 --- a/orchestrator.go +++ b/orchestrator.go @@ -22,9 +22,16 @@ func (mip *AbstractMulticast) AddUniqueAndSort(hier int64) { func (mip *AbstractMulticast) IsAlpha(hier int64) bool { - alpha := slices.Max(mip.HierarchyArray) - log.Println("Maximum element is :", alpha) + slices.Sort(mip.HierarchyArray) + indexMax := len(mip.HierarchyArray) - 1 + if indexMax < 0 { + log.Println("Empty array , no elements") + return false + } + alpha := mip.HierarchyArray[indexMax] + log.Println("Maximum element is :", alpha) + log.Println("Array is :", mip.HierarchyArray) return alpha == hier }