diff --git a/conf.go b/conf.go index 455fbf8..b1d5249 100644 --- a/conf.go +++ b/conf.go @@ -28,7 +28,7 @@ func init() { MulticastEntity.MIpAddr = a.MulticastConfig.MIPAddr MulticastEntity.MPort = a.MulticastConfig.MPort - MulticastEntity.MaxDatagramSize = numberlenght + MulticastEntity.MaxDatagramSize = a.MulticastConfig.MaxDatagramSize ZoreideBridge.BridgeIpCIDR = a.InterfaceConfig.BridgeIPCIDR ZoreideBridge.ExistingInterface = a.InterfaceConfig.ExistingInterface diff --git a/interface.go b/interface.go index 863f91b..f17b341 100644 --- a/interface.go +++ b/interface.go @@ -5,7 +5,6 @@ import ( "log" "math/rand" "net" - "strconv" "time" "github.com/go-ping/ping" @@ -46,22 +45,8 @@ func (b *AbstractBridge) RefreshArp() { func (b *AbstractBridge) initializeHierarchy() { - var letterRunes = []rune("123456789") - - num := make([]rune, numberlenght) - for i := range num { - num[i] = letterRunes[rand.Intn(len(letterRunes))] - } - - zz, err := strconv.ParseInt(string(num), 10, 64) - if err != nil { - log.Println("Error generating number: ", err.Error()) - b.hIerarchyNumber = 0 - return - } else { - b.hIerarchyNumber = zz - log.Println("Success generating number: ", b.hIerarchyNumber) - } + b.hIerarchyNumber = rand.Int63() + log.Println("Initialized host number: ", b.hIerarchyNumber) } diff --git a/main.go b/main.go index ffc0163..102a1d9 100644 --- a/main.go +++ b/main.go @@ -10,8 +10,6 @@ var MulticastEntity AbstractMulticast var BstChannel = make(chan string, 1) var ZoreideBridge AbstractBridge -const numberlenght = 18 - func main() { MulticastEntity.GetMulticastReady() diff --git a/orchestrator.go b/orchestrator.go index 79d36cf..6dd033c 100644 --- a/orchestrator.go +++ b/orchestrator.go @@ -4,6 +4,7 @@ import ( "fmt" "log" "net" + "regexp" "slices" "strconv" "time" @@ -75,7 +76,12 @@ func (b *AbstractBridge) HierarchyReLocator(entity AbstractMulticast) { log.Println("Inizializing Descalator") + entity.AddUniqueAndSort(b.hIerarchyNumber) + + re := regexp.MustCompile("[0-9]+") + for bstNumber := range BstChannel { + bstNumber = re.FindAllString(bstNumber, -1)[0] brdNumber, err := strconv.ParseInt(bstNumber, 10, 64) if err != nil { log.Println("Garbage received on multicast: ", bstNumber) @@ -117,8 +123,6 @@ func (b *AbstractBridge) WaitAndClean(entity AbstractMulticast) { log.Println("Inizializing Escalator") - entity.AddUniqueAndSort(b.hIerarchyNumber) - brIp, _, err := net.ParseCIDR(b.BridgeIpCIDR) if err != nil { log.Println(err.Error()) @@ -132,6 +136,8 @@ func (b *AbstractBridge) WaitAndClean(entity AbstractMulticast) { if !isActive(string(brIp.String())) { entity.HierarchyArray = entity.HierarchyArray[:0] entity.HierarchyArray = slices.Clip(entity.HierarchyArray) + entity.AddUniqueAndSort(b.hIerarchyNumber) } + } } diff --git a/zoreide.json b/zoreide.json index b0cce2c..e6db621 100644 --- a/zoreide.json +++ b/zoreide.json @@ -2,7 +2,7 @@ "MulticastConfig": { "MIpAddr": "239.0.0.19", "MPort": "9898", - "MaxDatagramSize": 18 + "MaxDatagramSize": 32 }, "InterfaceConfig": { "ExistingInterface": "eth0",