From d178262d08ccf509556845ef147e5a003cad3997 Mon Sep 17 00:00:00 2001 From: crusader Date: Fri, 11 May 2018 11:44:47 +0900 Subject: [PATCH] ing --- internal/discoverer/discoverer.go | 3 --- internal/discoverer/discoverer_test.go | 8 +++++--- internal/discoverer/ipv4/host.go | 16 +++++++++------- internal/discoverer/ipv4/port_tcp.go | 6 ++++-- internal/discoverer/ipv4/port_udp.go | 8 +++++--- internal/discoverer/ipv4/service.go | 11 +++++++---- internal/discoverer/ipv4/service_tcp.go | 21 +++++++++++++-------- internal/discoverer/ipv4/service_udp.go | 7 +++++-- internal/discoverer/zone.go | 10 ++++++---- service/DiscoveryService.go | 5 +++-- 10 files changed, 57 insertions(+), 38 deletions(-) diff --git a/internal/discoverer/discoverer.go b/internal/discoverer/discoverer.go index c6d1eef..dcf37b7 100644 --- a/internal/discoverer/discoverer.go +++ b/internal/discoverer/discoverer.go @@ -25,7 +25,6 @@ type DiscoveryData struct { Type DiscoveryDataType Result interface{} Error error - Time util.Timestamp } func (dd *DiscoveryData) Release() { @@ -276,7 +275,6 @@ func retainDiscoveryData(discoveryDataType DiscoveryDataType, t util.Timestamp, } discoveryData.Type = discoveryDataType - discoveryData.Time = t discoveryData.Result = result discoveryData.Error = err @@ -287,7 +285,6 @@ func releaseDiscoveryData(discoveryData *DiscoveryData) { discoveryData.Type = DiscoveryDataTypeNone discoveryData.Result = nil discoveryData.Error = nil - discoveryData.Time = util.Timestamp{} discoveryDataPool.Put(discoveryData) } diff --git a/internal/discoverer/discoverer_test.go b/internal/discoverer/discoverer_test.go index fb533a0..1d1a4b2 100644 --- a/internal/discoverer/discoverer_test.go +++ b/internal/discoverer/discoverer_test.go @@ -8,6 +8,7 @@ import ( logging "git.loafle.net/commons/logging-go" occc "git.loafle.net/overflow/commons-go/core/constants" + occu "git.loafle.net/overflow/commons-go/core/util" ocmd "git.loafle.net/overflow/commons-go/model/discovery" "git.loafle.net/overflow/container_discovery/internal/discoverer" ) @@ -41,9 +42,10 @@ var ( IncludeUDP: true, } p = &ocmd.Port{ - Host: h, - PortType: occc.PortTypeTCP, - PortNumber: json.Number(strconv.Itoa(80)), + Host: h, + PortType: occc.PortTypeTCP, + PortNumber: json.Number(strconv.Itoa(80)), + DiscoveredDate: occu.NowPtr(), } ds = &ocmd.DiscoverService{ IncludeServices: []string{ diff --git a/internal/discoverer/ipv4/host.go b/internal/discoverer/ipv4/host.go index 91acf90..b90210d 100644 --- a/internal/discoverer/ipv4/host.go +++ b/internal/discoverer/ipv4/host.go @@ -8,11 +8,11 @@ import ( "git.loafle.net/commons/logging-go" "git.loafle.net/commons/util-go/net/cidr" - "github.com/google/gopacket" - "github.com/google/gopacket/layers" - + occu "git.loafle.net/overflow/commons-go/core/util" ocmd "git.loafle.net/overflow/commons-go/model/discovery" "git.loafle.net/overflow/container_discovery/internal/pcap" + "github.com/google/gopacket" + "github.com/google/gopacket/layers" ) func ScanHost(zone *ocmd.Zone, dh *ocmd.DiscoverHost, resultChan chan interface{}, errChan chan error, stopChan chan struct{}) { @@ -145,10 +145,12 @@ func handlePacketARP(zone *ocmd.Zone, hostRanges []net.IP, hosts map[string]*ocm return nil } - h := &ocmd.Host{} - h.IPV4 = ip.String() - h.Mac = net.HardwareAddr(packet.SourceHwAddress).String() - h.Zone = zone + h := &ocmd.Host{ + IPV4: ip.String(), + Mac: net.HardwareAddr(packet.SourceHwAddress).String(), + Zone: zone, + DiscoveredDate: occu.NowPtr(), + } hosts[ip.String()] = h diff --git a/internal/discoverer/ipv4/port_tcp.go b/internal/discoverer/ipv4/port_tcp.go index ebda44b..96a53ec 100644 --- a/internal/discoverer/ipv4/port_tcp.go +++ b/internal/discoverer/ipv4/port_tcp.go @@ -11,6 +11,7 @@ import ( "git.loafle.net/commons/logging-go" occc "git.loafle.net/overflow/commons-go/core/constants" + occu "git.loafle.net/overflow/commons-go/core/util" ocmd "git.loafle.net/overflow/commons-go/model/discovery" "git.loafle.net/overflow/container_discovery/internal/pcap" @@ -140,8 +141,9 @@ func handlePacketTCP(host *ocmd.Host, dp *ocmd.DiscoverPort, ports map[int]*ocmd } p := &ocmd.Port{ - PortType: occc.PortTypeTCP, - PortNumber: json.Number(strconv.Itoa(port)), + PortType: occc.PortTypeTCP, + PortNumber: json.Number(strconv.Itoa(port)), + DiscoveredDate: occu.NowPtr(), } p.Host = host diff --git a/internal/discoverer/ipv4/port_udp.go b/internal/discoverer/ipv4/port_udp.go index d3a22c2..3bbc86b 100644 --- a/internal/discoverer/ipv4/port_udp.go +++ b/internal/discoverer/ipv4/port_udp.go @@ -11,6 +11,7 @@ import ( "git.loafle.net/commons/logging-go" occc "git.loafle.net/overflow/commons-go/core/constants" + occu "git.loafle.net/overflow/commons-go/core/util" ocmd "git.loafle.net/overflow/commons-go/model/discovery" "git.loafle.net/overflow/container_discovery/internal/pcap" @@ -156,9 +157,10 @@ func handlePacketUDP(host *ocmd.Host, dp *ocmd.DiscoverPort, ports map[int]*ocmd } p := &ocmd.Port{ - PortType: occc.PortTypeUDP, - PortNumber: json.Number(strconv.Itoa(port)), - UDPLayer: udpLayer, + PortType: occc.PortTypeUDP, + PortNumber: json.Number(strconv.Itoa(port)), + UDPLayer: udpLayer, + DiscoveredDate: occu.NowPtr(), } p.Host = host ports[port] = p diff --git a/internal/discoverer/ipv4/service.go b/internal/discoverer/ipv4/service.go index 4d0a901..8e9a34a 100644 --- a/internal/discoverer/ipv4/service.go +++ b/internal/discoverer/ipv4/service.go @@ -5,6 +5,7 @@ import ( cuej "git.loafle.net/commons/util-go/encoding/json" occc "git.loafle.net/overflow/commons-go/core/constants" + occu "git.loafle.net/overflow/commons-go/core/util" ocmd "git.loafle.net/overflow/commons-go/model/discovery" "github.com/google/gopacket/layers" ) @@ -23,9 +24,10 @@ func ScanService(port *ocmd.Port, ds *ocmd.DiscoverService, resultChan chan inte if dName, ok := layers.TCPPortNames[layers.TCPPort(portNumber)]; ok { sName := fmt.Sprintf("Not Supported Service. Perhaps %s[%d]", dName, portNumber) s := &ocmd.Service{ - ServiceName: sName, + ServiceName: sName, + DiscoveredDate: occu.NowPtr(), + Port: port, } - s.Port = port resultChan <- s } } @@ -35,9 +37,10 @@ func ScanService(port *ocmd.Port, ds *ocmd.DiscoverService, resultChan chan inte if dName, ok := layers.UDPPortNames[layers.UDPPort(portNumber)]; ok { sName := fmt.Sprintf("Not Supported Service. Perhaps %s[%d]", dName, portNumber) s := &ocmd.Service{ - ServiceName: sName, + ServiceName: sName, + DiscoveredDate: occu.NowPtr(), + Port: port, } - s.Port = port resultChan <- s } } diff --git a/internal/discoverer/ipv4/service_tcp.go b/internal/discoverer/ipv4/service_tcp.go index 73c52ac..46d198b 100644 --- a/internal/discoverer/ipv4/service_tcp.go +++ b/internal/discoverer/ipv4/service_tcp.go @@ -9,6 +9,7 @@ import ( csm "git.loafle.net/commons/service_matcher-go" cuej "git.loafle.net/commons/util-go/encoding/json" occc "git.loafle.net/overflow/commons-go/core/constants" + occu "git.loafle.net/overflow/commons-go/core/util" ocmd "git.loafle.net/overflow/commons-go/model/discovery" "git.loafle.net/overflow/container_discovery/internal/matcher" ) @@ -102,8 +103,9 @@ LOOP: if 0 == packetCount { s = &ocmd.Service{ - ServiceName: m.Name(), - CryptoType: occc.ToCryptoType(sc.CryptoType()), + ServiceName: m.Name(), + CryptoType: occc.ToCryptoType(sc.CryptoType()), + DiscoveredDate: occu.NowPtr(), } break LOOP } @@ -153,8 +155,9 @@ LOOP: if found { s = &ocmd.Service{ - ServiceName: m.Name(), - CryptoType: occc.ToCryptoType(sc.CryptoType()), + ServiceName: m.Name(), + CryptoType: occc.ToCryptoType(sc.CryptoType()), + DiscoveredDate: occu.NowPtr(), } break LOOP } @@ -210,8 +213,9 @@ LOOP: if nil != err { if !m.HasResponse(j) { s = &ocmd.Service{ - ServiceName: m.Name(), - CryptoType: occc.ToCryptoType(sc.CryptoType()), + ServiceName: m.Name(), + CryptoType: occc.ToCryptoType(sc.CryptoType()), + DiscoveredDate: occu.NowPtr(), } break } @@ -223,8 +227,9 @@ LOOP: if m.Match(info, j, csm.NewPacket(buf, rn)) { if packetCount-1 == j { s = &ocmd.Service{ - ServiceName: m.Name(), - CryptoType: occc.ToCryptoType(sc.CryptoType()), + ServiceName: m.Name(), + CryptoType: occc.ToCryptoType(sc.CryptoType()), + DiscoveredDate: occu.NowPtr(), } break } diff --git a/internal/discoverer/ipv4/service_udp.go b/internal/discoverer/ipv4/service_udp.go index 1c2e669..d45ccee 100644 --- a/internal/discoverer/ipv4/service_udp.go +++ b/internal/discoverer/ipv4/service_udp.go @@ -5,6 +5,7 @@ import ( csm "git.loafle.net/commons/service_matcher-go" cuej "git.loafle.net/commons/util-go/encoding/json" + occu "git.loafle.net/overflow/commons-go/core/util" ocmd "git.loafle.net/overflow/commons-go/model/discovery" "git.loafle.net/overflow/container_discovery/internal/matcher" ) @@ -25,9 +26,11 @@ func scanServiceUDP(port *ocmd.Port, ds *ocmd.DiscoverService, resultChan chan i if m.Match(mi, 0, p) { s := &ocmd.Service{ - ServiceName: m.Name(), + ServiceName: m.Name(), + Port: port, + DiscoveredDate: occu.NowPtr(), } - s.Port = port + resultChan <- s return true } diff --git a/internal/discoverer/zone.go b/internal/discoverer/zone.go index c9ea9ee..06db61b 100644 --- a/internal/discoverer/zone.go +++ b/internal/discoverer/zone.go @@ -5,6 +5,7 @@ import ( "regexp" "strings" + occu "git.loafle.net/overflow/commons-go/core/util" ocmd "git.loafle.net/overflow/commons-go/model/discovery" ) @@ -53,10 +54,11 @@ func scanZone(dz *ocmd.DiscoverZone, resultChan chan interface{}, errChan chan e zones = append(zones, ipnet) z := &ocmd.Zone{ - Network: ipnet.String(), - Iface: i.Name, - Mac: i.HardwareAddr.String(), - IPV4: strings.Split(addr.String(), "/")[0], + Network: ipnet.String(), + Iface: i.Name, + Mac: i.HardwareAddr.String(), + IPV4: strings.Split(addr.String(), "/")[0], + DiscoveredDate: occu.NowPtr(), } resultChan <- z diff --git a/service/DiscoveryService.go b/service/DiscoveryService.go index d846010..68ae452 100644 --- a/service/DiscoveryService.go +++ b/service/DiscoveryService.go @@ -9,6 +9,7 @@ import ( cda "git.loafle.net/commons/di-go/annotation" cdr "git.loafle.net/commons/di-go/registry" + occu "git.loafle.net/overflow/commons-go/core/util" ocmd "git.loafle.net/overflow/commons-go/model/discovery" ocscd "git.loafle.net/overflow/commons-go/service/container/discovery" ocs "git.loafle.net/overflow/container-go/service" @@ -131,10 +132,10 @@ func (s *DiscoveryService) handleDiscovery(requesterID string, discoveryFunc fun switch data.Type { case discoverer.DiscoveryDataTypeStart: logging.Logger().Debugf("DiscoveryService.DiscoveryStart") - s.ProbeService.Send("DiscoveryService.DiscoveryStart", requesterID, data.Time) + s.ProbeService.Send("DiscoveryService.DiscoveryStart", requesterID, occu.Now()) case discoverer.DiscoveryDataTypeStop: logging.Logger().Debugf("DiscoveryService.DiscoveryStop") - s.ProbeService.Send("DiscoveryService.DiscoveryStop", requesterID, data.Time) + s.ProbeService.Send("DiscoveryService.DiscoveryStop", requesterID, occu.Now()) data.Release() return nil case discoverer.DiscoveryDataTypeError: