mirror of
https://github.com/bettercap/bettercap
synced 2025-08-20 21:43:18 -07:00
misc: small fix or general refactoring i did not bother commenting
This commit is contained in:
parent
17ba1be16c
commit
6af2de6de9
6 changed files with 463 additions and 51 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue