misc: small fix or general refactoring i did not bother commenting

This commit is contained in:
Simone Margaritelli 2024-09-20 15:30:13 +02:00
commit 6af2de6de9
6 changed files with 463 additions and 51 deletions

View file

@ -101,7 +101,9 @@ func (mod *ZeroGod) startAdvertiser(fileName string) error {
return fmt.Errorf("could not deserialize %s: %v", fileName, err)
}
mod.Info("loaded %d services from %s", len(services), fileName)
numServices := len(services)
mod.Info("loaded %d services from %s", numServices, fileName)
advertiser := &Advertiser{
Filename: fileName,
@ -110,36 +112,29 @@ func (mod *ZeroGod) startAdvertiser(fileName string) error {
}
// paralleize initialization
svcChan := make(chan error)
svcChan := make(chan error, numServices)
for _, svc := range advertiser.Services {
go func(svc *ServiceData) {
// deregister the service from the network first
if err := svc.Unregister(mod); err != nil {
svcChan <- fmt.Errorf("could not unregister service %s: %v", svc.FullName(), err)
return
}
// give some time to the network to adjust
time.Sleep(time.Duration(1) * time.Second)
// register it
if err := svc.Register(mod); err != nil {
svcChan <- err
} else {
svcChan <- nil
// give some time to the network to adjust
time.Sleep(time.Duration(1) * time.Second)
// register it
if err := svc.Register(mod, hostName); err != nil {
svcChan <- err
} else {
svcChan <- nil
}
}
}(svc)
}
got := 0
for err := range svcChan {
if err != nil {
for i := 0; i < numServices; i++ {
if err := <-svcChan; err != nil {
return err
}
got++
if got == len(advertiser.Services) {
break
}
}
// now create the tcp acceptors for entries without an explicit responder address