This commit is contained in:
crusader 2018-09-03 12:35:43 +09:00
parent 1251b9f423
commit 9869bac38b
2 changed files with 14 additions and 6 deletions

View File

@ -261,7 +261,7 @@ func (d *ofDiscoverer) hierarchyDiscover(s session.DiscoverySession) {
// post complexDiscover
if nil != s.DiscoverPort() {
discoveredHosts := s.DiscoveredAllHosts()
discoveredHosts := s.DiscoveredAllHosts(true)
for _, h := range discoveredHosts {
wg.Add(1)
go func(h *omd.Host) {

View File

@ -36,7 +36,7 @@ type DiscoverySession interface {
AddService(service *omd.Service) *omd.Service
DiscoveredHost(address string) *omd.Host
DiscoveredAllHosts() map[string]*omd.Host
DiscoveredAllHosts(includeMac bool) map[string]*omd.Host
DiscoveredPort(host *omd.Host, portNumber int) map[string]*omd.Port
DiscoveredAllPorts() map[*omd.Host]map[json.Number]map[string]*omd.Port
DiscoveredService(port *omd.Port, name string) map[string]*omd.Service
@ -60,9 +60,10 @@ type ofDiscoverySession struct {
discoveryDelegator chan<- interface{}
hosts map[string]*omd.Host
ports map[*omd.Host]map[json.Number]map[string]*omd.Port
services map[*omd.Port]map[string]map[string]*omd.Service
hosts map[string]*omd.Host
includeMachosts map[string]*omd.Host
ports map[*omd.Host]map[json.Number]map[string]*omd.Port
services map[*omd.Port]map[string]map[string]*omd.Service
}
func (ds *ofDiscoverySession) init(request types.DiscoveryRequest) {
@ -75,6 +76,7 @@ func (ds *ofDiscoverySession) init(request types.DiscoveryRequest) {
ds.discoverService = nil
ds.hosts = 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.services = make(map[*omd.Port]map[string]map[string]*omd.Service)
}
@ -260,7 +262,10 @@ func (ds *ofDiscoverySession) DiscoveredHost(address string) *omd.Host {
return h
}
func (ds *ofDiscoverySession) DiscoveredAllHosts() map[string]*omd.Host {
func (ds *ofDiscoverySession) DiscoveredAllHosts(includeMac bool) map[string]*omd.Host {
if includeMac {
return ds.includeMachosts
}
return ds.hosts
}
@ -320,6 +325,9 @@ func (ds *ofDiscoverySession) findHost(host *omd.Host, add bool) (h *omd.Host, m
return
}
ds.hosts[host.Address] = host
if "" != host.Mac {
ds.includeMachosts[host.Address] = host
}
h = host
modified = true
}