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 // post complexDiscover
if nil != s.DiscoverPort() { if nil != s.DiscoverPort() {
discoveredHosts := s.DiscoveredAllHosts() discoveredHosts := s.DiscoveredAllHosts(true)
for _, h := range discoveredHosts { for _, h := range discoveredHosts {
wg.Add(1) wg.Add(1)
go func(h *omd.Host) { go func(h *omd.Host) {

View File

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