ing
This commit is contained in:
parent
ab53243acf
commit
dfdc9bdf82
|
@ -51,7 +51,7 @@ func scanV4(discoverySession session.DiscoverySession, targetHost *omd.Host) (er
|
||||||
|
|
||||||
var delay atomic.Value
|
var delay atomic.Value
|
||||||
delay.Store(false)
|
delay.Store(false)
|
||||||
ticker := time.NewTicker(time.Millisecond * 1000)
|
ticker := time.NewTicker(time.Millisecond * 3000)
|
||||||
defer func() {
|
defer func() {
|
||||||
ticker.Stop()
|
ticker.Stop()
|
||||||
}()
|
}()
|
||||||
|
|
|
@ -90,7 +90,8 @@ type ofDiscoverySession struct {
|
||||||
services map[*omd.Port]map[string]*omd.Service
|
services map[*omd.Port]map[string]*omd.Service
|
||||||
privileged bool
|
privileged bool
|
||||||
|
|
||||||
hostScanned sync.Map
|
hostScanned map[string]map[string]bool
|
||||||
|
hostScannedMtx sync.Mutex
|
||||||
|
|
||||||
stopped atomic.Value
|
stopped atomic.Value
|
||||||
stopChan chan struct{}
|
stopChan chan struct{}
|
||||||
|
@ -113,6 +114,7 @@ func (ds *ofDiscoverySession) init(request types.DiscoveryRequest) {
|
||||||
ds.includeMacHosts = make(map[string]*omd.Host)
|
ds.includeMacHosts = make(map[string]*omd.Host)
|
||||||
ds.ports = make(map[*omd.Host]map[json.Number]map[string]*omd.Port)
|
ds.ports = make(map[*omd.Host]map[json.Number]map[string]*omd.Port)
|
||||||
ds.services = make(map[*omd.Port]map[string]*omd.Service)
|
ds.services = make(map[*omd.Port]map[string]*omd.Service)
|
||||||
|
ds.hostScanned = make(map[string]map[string]bool)
|
||||||
|
|
||||||
ds.stopped.Store(false)
|
ds.stopped.Store(false)
|
||||||
ds.stopChan = make(chan struct{})
|
ds.stopChan = make(chan struct{})
|
||||||
|
@ -301,15 +303,17 @@ func (ds *ofDiscoverySession) IsTargetService(service *omd.Service) bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ds *ofDiscoverySession) HostNeedScan(host *omd.Host, discovererType *omm.MetaDiscovererType) bool {
|
func (ds *ofDiscoverySession) HostNeedScan(host *omd.Host, discovererType *omm.MetaDiscovererType) bool {
|
||||||
_sd, ok := ds.hostScanned.Load(host.Address)
|
ds.hostScannedMtx.Lock()
|
||||||
|
defer ds.hostScannedMtx.Unlock()
|
||||||
|
|
||||||
|
sd, ok := ds.hostScanned[host.Address]
|
||||||
if !ok {
|
if !ok {
|
||||||
sd := make(map[string]bool)
|
sd = make(map[string]bool)
|
||||||
sd[discovererType.Key] = true
|
sd[discovererType.Key] = true
|
||||||
ds.hostScanned.Store(host.Address, sd)
|
ds.hostScanned[host.Address] = sd
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
sd := _sd.(map[string]bool)
|
|
||||||
_, ok = sd[discovererType.Key]
|
_, ok = sd[discovererType.Key]
|
||||||
if !ok {
|
if !ok {
|
||||||
sd[discovererType.Key] = true
|
sd[discovererType.Key] = true
|
||||||
|
@ -1055,6 +1059,7 @@ func ReleaseDiscoverySession(ds *ofDiscoverySession) {
|
||||||
ds.hosts = nil
|
ds.hosts = nil
|
||||||
ds.ports = nil
|
ds.ports = nil
|
||||||
ds.services = nil
|
ds.services = nil
|
||||||
|
ds.hostScanned = nil
|
||||||
|
|
||||||
discoverySessionPool.Put(ds)
|
discoverySessionPool.Put(ds)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user