@@ -11,7 +11,6 @@ import (
1111 "net/http/httptest"
1212 "os"
1313 "strconv"
14- "sync"
1514 "time"
1615
1716 firetail "github.com/FireTail-io/firetail-go-lib/middlewares/http"
@@ -54,7 +53,6 @@ func (s *httpRequestAndResponseStreamer) start() {
5453 & bidirectionalStreamFactory {
5554 conns : make (map [string ]* bidirectionalStream ),
5655 requestAndResponseChannel : s .requestAndResponseChannel ,
57- ipManager : s .ipManager ,
5856 },
5957 ),
6058 )
@@ -70,20 +68,6 @@ func (s *httpRequestAndResponseStreamer) start() {
7068 if ! ok {
7169 continue
7270 }
73- net , ok := packet .NetworkLayer ().(* layers.IPv4 )
74- if ! ok {
75- continue
76- }
77- if ! (s .ipManager == nil || s .ipManager .isServiceIP (net .DstIP .String ())) {
78- slog .Debug (
79- "Skipping connection to non-service IP:" ,
80- "Src" , net .SrcIP .String (),
81- "Dst" , net .DstIP .String (),
82- "SrcPort" , tcp .SrcPort .String (),
83- "DstPort" , tcp .DstPort .String (),
84- )
85- continue
86- }
8771 assembler .AssembleWithTimestamp (packet .NetworkLayer ().NetworkFlow (), tcp , packet .Metadata ().Timestamp )
8872 case <- ticker :
8973 assembler .FlushOlderThan (time .Now ().Add (- 2 * time .Minute ))
@@ -95,7 +79,6 @@ func (s *httpRequestAndResponseStreamer) start() {
9579type bidirectionalStreamFactory struct {
9680 conns map [string ]* bidirectionalStream
9781 requestAndResponseChannel * chan httpRequestAndResponse
98- ipManager * serviceIpManager
9982}
10083
10184func (f * bidirectionalStreamFactory ) New (netFlow , tcpFlow gopacket.Flow ) tcpassembly.Stream {
@@ -211,7 +194,7 @@ func main() {
211194 }
212195
213196 var ipManager * serviceIpManager
214- if disableServiceIpFilter , err := strconv .ParseBool (os .Getenv ("DISABLE_SERVICE_IP_FILTERING" )); err != nil || ! disableServiceIpFilter {
197+ if disableServiceIpFilter , err := strconv .ParseBool (os .Getenv ("DISABLE_SERVICE_IP_FILTERING" )); ! ( err == nil && disableServiceIpFilter ) {
215198 slog .Info (
216199 "Service IP filter enabled, monitoring service IPs..." ,
217200 )
@@ -265,6 +248,16 @@ func main() {
265248 for {
266249 select {
267250 case requestAndResponse := <- requestAndResponseChannel :
251+ if ! (ipManager == nil || ipManager .isServiceIP (requestAndResponse .dst )) {
252+ slog .Debug (
253+ "Skipping connection to non-service IP:" ,
254+ "Src" , requestAndResponse .src ,
255+ "Dst" , requestAndResponse .dst ,
256+ "SrcPort" , requestAndResponse .srcPort ,
257+ "DstPort" , requestAndResponse .dstPort ,
258+ )
259+ continue
260+ }
268261 slog .Debug (
269262 "Captured request and response:" ,
270263 "Method" , requestAndResponse .request .Method ,
0 commit comments