ing
This commit is contained in:
parent
ab15aa25a3
commit
a07e7e7b93
|
@ -26,8 +26,19 @@ func scanTCP(discoverySession session.DiscoverySession, targetPort *omd.Port) er
|
||||||
return fmt.Errorf("Service scan on %s:%s error has occurred %v ", hostAddress, targetPort.PortNumber, err)
|
return fmt.Errorf("Service scan on %s:%s error has occurred %v ", hostAddress, targetPort.PortNumber, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var limitedMatchers []osm.Matcher
|
||||||
|
|
||||||
if omm.MetaHostTypeEnumPrinter.String() == targetPort.Host.HostType {
|
if omm.MetaHostTypeEnumPrinter.String() == targetPort.Host.HostType {
|
||||||
if 9100 == portNumber || 515 == portNumber || 7 == portNumber {
|
switch portNumber {
|
||||||
|
case 7:
|
||||||
|
return nil
|
||||||
|
case 515:
|
||||||
|
limitedMatchers = []osm.Matcher{
|
||||||
|
matcher.GetMatcherByKey("LPD"),
|
||||||
|
}
|
||||||
|
case 8290:
|
||||||
|
return nil
|
||||||
|
case 9100:
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -56,10 +67,10 @@ LOOP:
|
||||||
}
|
}
|
||||||
|
|
||||||
if 0 < n {
|
if 0 < n {
|
||||||
discoveredMatcher = hadlePrePacket(matchCtx, _connector, conn, osm.NewPacket(buf, n), stopChan)
|
discoveredMatcher = hadlePrePacket(matchCtx, _connector, conn, osm.NewPacket(buf, n), limitedMatchers, stopChan)
|
||||||
} else {
|
} else {
|
||||||
conn.Close()
|
conn.Close()
|
||||||
discoveredMatcher = hadlePostPacket(matchCtx, _connector, targetPort, nil, stopChan)
|
discoveredMatcher = hadlePostPacket(matchCtx, _connector, targetPort, limitedMatchers, stopChan)
|
||||||
}
|
}
|
||||||
|
|
||||||
if nil != discoveredMatcher {
|
if nil != discoveredMatcher {
|
||||||
|
@ -108,12 +119,16 @@ LOOP:
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func hadlePrePacket(matchCtx *osm.MatchCtx, _connector connector, conn net.Conn, packet *osm.Packet, stopChan <-chan struct{}) osm.Matcher {
|
func hadlePrePacket(matchCtx *osm.MatchCtx, _connector connector, conn net.Conn, packet *osm.Packet, limitedMatchers []osm.Matcher, stopChan <-chan struct{}) osm.Matcher {
|
||||||
defer func() {
|
defer func() {
|
||||||
conn.Close()
|
conn.Close()
|
||||||
}()
|
}()
|
||||||
|
|
||||||
matchers := matcher.GetTCPMatchers(true)
|
matchers := matcher.GetTCPMatchers(true)
|
||||||
|
if nil != limitedMatchers {
|
||||||
|
matchers = limitedMatchers
|
||||||
|
}
|
||||||
|
|
||||||
buf := make([]byte, 1024)
|
buf := make([]byte, 1024)
|
||||||
var discoveredMatcher osm.Matcher
|
var discoveredMatcher osm.Matcher
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user