@@ -152,7 +152,6 @@ func TestTCPConnWithProcessSocketTimeouts(t *testing.T) {
152152 lPort , rPort := be16 (localPort ), be16 (remotePort )
153153 lAddr , rAddr := ipv4 (localIP ), ipv4 (remoteIP )
154154 evs := []event {
155-
156155 callExecve (meta (1234 , 1234 , 1 ), []string {"/usr/bin/curl" , "https://example.net/" , "-o" , "/tmp/site.html" }),
157156 & commitCreds {Meta : meta (1234 , 1234 , 2 ), UID : 501 , GID : 20 , EUID : 501 , EGID : 20 },
158157 & execveRet {Meta : meta (1234 , 1234 , 2 ), Retval : 1234 },
@@ -302,6 +301,32 @@ func TestTCPConnWithProcessSocketTimeouts(t *testing.T) {
302301 }
303302}
304303
304+ func TestSocketExpirationWithOverwrittenSockets (t * testing.T ) {
305+ const (
306+ sock uintptr = 0xff1234
307+ flowTimeout = time .Hour
308+ socketTimeout = time .Minute * 3
309+ closeTimeout = time .Minute
310+ )
311+ st := makeState (nil , (* logWrapper )(t ), flowTimeout , socketTimeout , closeTimeout , time .Second )
312+ now := time .Now ()
313+ st .clock = func () time.Time {
314+ return now
315+ }
316+ if err := feedEvents ([]event {
317+ & inetCreate {Meta : meta (1234 , 1236 , 5 ), Proto : 0 },
318+ & sockInitData {Meta : meta (1234 , 1236 , 5 ), Sock : sock },
319+ & inetCreate {Meta : meta (1234 , 1237 , 5 ), Proto : 0 },
320+ & sockInitData {Meta : meta (1234 , 1237 , 5 ), Sock : sock },
321+ }, st , t ); err != nil {
322+ t .Fatal (err )
323+ }
324+ now = now .Add (closeTimeout + 1 )
325+ st .ExpireOlder ()
326+ now = now .Add (socketTimeout + 1 )
327+ st .ExpireOlder ()
328+ }
329+
305330func TestUDPOutgoingSinglePacketWithProcess (t * testing.T ) {
306331 const (
307332 localIP = "192.168.33.10"
0 commit comments