This commit is contained in:
crusader
2018-09-05 03:58:33 +09:00
parent a1ecf315c6
commit 7535e7ffc1
16 changed files with 158 additions and 159 deletions

View File

@@ -12,6 +12,7 @@ import (
omd "git.loafle.net/overflow/model/discovery"
omm "git.loafle.net/overflow/model/meta"
omu "git.loafle.net/overflow/model/util"
osm "git.loafle.net/overflow/service_matcher-go"
"git.loafle.net/overflow_scanner/probe/discovery/session"
"git.loafle.net/overflow_scanner/probe/internal/matcher"
"git.loafle.net/overflow_scanner/probe/internal/pcap"
@@ -20,13 +21,10 @@ import (
)
func scanV4(discoverySession session.DiscoverySession, targetHost *omd.Host) error {
ps, err := pcap.RetainScanner(targetHost.Zone)
if nil != err {
return fmt.Errorf("Discovery: Cannot retain pcap instance %v", err)
ps := discoverySession.PCapScanner()
if nil == ps {
return fmt.Errorf("Cannot retain pcap instance")
}
defer func() {
go pcap.ReleaseScanner(targetHost.Zone)
}()
udpChan := ps.OpenUDP(targetHost.Address)
defer func() {
@@ -108,9 +106,11 @@ func sendUDP4(discoverySession session.DiscoverySession, ps pcap.PCapScanner, ho
continue INNER_LOOP
}
matchCtx := osm.NewMatchCtx(host.Address, portNumber)
addr := &net.UDPAddr{IP: ip.To4(), Port: portNumber}
for i := 0; i < _matcher.PacketCount(); i++ {
p := _matcher.Packet(i)
for i := 0; i < _matcher.PacketCount(matchCtx); i++ {
p := _matcher.Packet(matchCtx, i)
if _, err := conn.WriteToUDP(p.Buffer, addr); err != nil {
log.Print("UDP write error", err)
}