fix getStreamProps function.

(it should be passed from CLI as it was before).
This commit is contained in:
Roee Gadot 2021-08-25 17:28:14 +03:00
parent becb8d1618
commit be7c65eb6d

View File

@ -19,7 +19,7 @@ import (
*/ */
type tcpStreamFactory struct { type tcpStreamFactory struct {
wg sync.WaitGroup wg sync.WaitGroup
outbountLinkWriter *OutboundLinkWriter outboundLinkWriter *OutboundLinkWriter
AllExtensionPorts []string AllExtensionPorts []string
Emitter api.Emitter Emitter api.Emitter
} }
@ -36,9 +36,9 @@ func (factory *tcpStreamFactory) New(net, transport gopacket.Flow, tcp *layers.T
dstPort := transport.Dst().String() dstPort := transport.Dst().String()
// if factory.shouldNotifyOnOutboundLink(dstIp, dstPort) { // if factory.shouldNotifyOnOutboundLink(dstIp, dstPort) {
// factory.outbountLinkWriter.WriteOutboundLink(net.Src().String(), dstIp, dstPort, "", "") // factory.outboundLinkWriter.WriteOutboundLink(net.Src().String(), dstIp, dstPort, "", "")
// } // }
props := factory.getStreamProps(srcIp, dstIp, srcPort, dstPort, factory.AllExtensionPorts) props := factory.getStreamProps(srcIp, dstIp, dstPort)
isTapTarget := props.isTapTarget isTapTarget := props.isTapTarget
stream := &tcpStream{ stream := &tcpStream{
net: net, net: net,
@ -62,7 +62,7 @@ func (factory *tcpStreamFactory) New(net, transport gopacket.Flow, tcp *layers.T
parent: stream, parent: stream,
isClient: true, isClient: true,
isOutgoing: props.isOutgoing, isOutgoing: props.isOutgoing,
outboundLinkWriter: factory.outbountLinkWriter, outboundLinkWriter: factory.outboundLinkWriter,
Emitter: factory.Emitter, Emitter: factory.Emitter,
} }
factory.wg.Add(1) factory.wg.Add(1)
@ -76,17 +76,15 @@ func (factory *tcpStreamFactory) WaitGoRoutines() {
factory.wg.Wait() factory.wg.Wait()
} }
func (factory *tcpStreamFactory) getStreamProps(srcIP string, dstIP string, srcPort string, dstPort string, allExtensionPorts []string) *streamProps { func (factory *tcpStreamFactory) getStreamProps(srcIP string, dstIP string, dstPort string) *streamProps {
if hostMode { if hostMode {
// TODO: Bring back `filterAuthorities` if inArrayString(gSettings.filterAuthorities, fmt.Sprintf("%s:%s", dstIP, dstPort)) {
return &streamProps{isTapTarget: true, isOutgoing: false}
if inArrayString(gSettings.filterAuthorities, fmt.Sprintf("%s:%s", dstIP, dstPort)) == true {
rlog.Debugf("getStreamProps %s", fmt.Sprintf("+ host1 %s:%s", dstIP, dstPort)) rlog.Debugf("getStreamProps %s", fmt.Sprintf("+ host1 %s:%s", dstIP, dstPort))
return &streamProps{isTapTarget: true, isOutgoing: false} return &streamProps{isTapTarget: true, isOutgoing: false}
} else if inArrayString(gSettings.filterAuthorities, dstIP) == true { } else if inArrayString(gSettings.filterAuthorities, dstIP) {
rlog.Debugf("getStreamProps %s", fmt.Sprintf("+ host2 %s", dstIP)) rlog.Debugf("getStreamProps %s", fmt.Sprintf("+ host2 %s", dstIP))
return &streamProps{isTapTarget: true, isOutgoing: false} return &streamProps{isTapTarget: true, isOutgoing: false}
} else if *anydirection && inArrayString(gSettings.filterAuthorities, srcIP) == true { } else if *anydirection && inArrayString(gSettings.filterAuthorities, srcIP) {
rlog.Debugf("getStreamProps %s", fmt.Sprintf("+ host3 %s", srcIP)) rlog.Debugf("getStreamProps %s", fmt.Sprintf("+ host3 %s", srcIP))
return &streamProps{isTapTarget: true, isOutgoing: true} return &streamProps{isTapTarget: true, isOutgoing: true}
} }