Skip to content

Commit dc08fd2

Browse files
authored
(chore): remove duration arg from context.Run (#91)
Part of APPSEC-52238
1 parent e580030 commit dc08fd2

File tree

3 files changed

+36
-36
lines changed

3 files changed

+36
-36
lines changed

context.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ func (d RunAddressData) isEmpty() bool {
6565
// Struct fields having the tag `ddwaf:"ignore"` will not be encoded and sent to the WAF
6666
// if the output of TotalTime() exceeds the value of Timeout, the function will immediately return with errors.ErrTimeout
6767
// The second parameter is deprecated and should be passed to NewContextWithBudget instead.
68-
func (context *Context) Run(addressData RunAddressData, _ time.Duration) (res Result, err error) {
68+
func (context *Context) Run(addressData RunAddressData) (res Result, err error) {
6969
if addressData.isEmpty() {
7070
return
7171
}

encoder_decoder_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ func wafTest(t *testing.T, obj *bindings.WafObject) {
3535
_, err = wafCtx.Run(RunAddressData{
3636
Persistent: map[string]any{"my.input": obj},
3737
Ephemeral: map[string]any{"my.other.input": obj},
38-
}, time.Second)
38+
})
3939
require.NoError(t, err)
4040
}
4141

waf_test.go

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -285,7 +285,7 @@ func TestUpdateWAF(t *testing.T) {
285285
ephemeral := map[string]interface{}{
286286
"my.other.input": map[string]bool{"safe": true},
287287
}
288-
res, err := wafCtx.Run(RunAddressData{Persistent: values, Ephemeral: ephemeral}, time.Second)
288+
res, err := wafCtx.Run(RunAddressData{Persistent: values, Ephemeral: ephemeral})
289289
require.NoError(t, err)
290290
require.NotEmpty(t, res.Events)
291291
require.Nil(t, res.Actions)
@@ -304,7 +304,7 @@ func TestUpdateWAF(t *testing.T) {
304304
values = map[string]interface{}{
305305
"my.input": "Arachni",
306306
}
307-
res, err = wafCtx2.Run(RunAddressData{Persistent: values, Ephemeral: ephemeral}, time.Second)
307+
res, err = wafCtx2.Run(RunAddressData{Persistent: values, Ephemeral: ephemeral})
308308
require.NoError(t, err)
309309
require.NotEmpty(t, res.Events)
310310
require.NotEmpty(t, res.Actions)
@@ -376,7 +376,7 @@ func TestTimeout(t *testing.T) {
376376
require.NotNil(t, context)
377377
defer context.Close()
378378

379-
_, err = context.Run(RunAddressData{Persistent: normalValue, Ephemeral: normalValue}, 0)
379+
_, err = context.Run(RunAddressData{Persistent: normalValue, Ephemeral: normalValue})
380380
require.NoError(t, err)
381381
require.NotEmpty(t, context.Stats())
382382
require.NotZero(t, context.Stats().Timers["_dd.appsec.waf.decode"])
@@ -391,7 +391,7 @@ func TestTimeout(t *testing.T) {
391391
require.NotNil(t, context)
392392
defer context.Close()
393393

394-
_, err = context.Run(RunAddressData{Persistent: map[string]any{"my.input": "curl/7.88"}}, 0)
394+
_, err = context.Run(RunAddressData{Persistent: map[string]any{"my.input": "curl/7.88"}})
395395
require.NoError(t, err)
396396
require.NotEmpty(t, context.Stats())
397397
require.NotZero(t, context.Stats().Timers["_dd.appsec.waf.decode"])
@@ -406,7 +406,7 @@ func TestTimeout(t *testing.T) {
406406
require.NotNil(t, context)
407407
defer context.Close()
408408

409-
_, err = context.Run(RunAddressData{Persistent: largeValue}, 0)
409+
_, err = context.Run(RunAddressData{Persistent: largeValue})
410410
require.Equal(t, errors.ErrTimeout, err)
411411
require.GreaterOrEqual(t, context.Stats().Timers["_dd.appsec.waf.duration_ext"], time.Millisecond)
412412
require.GreaterOrEqual(t, context.Stats().Timers["_dd.appsec.waf.encode"], time.Millisecond)
@@ -418,7 +418,7 @@ func TestTimeout(t *testing.T) {
418418
require.NotNil(t, context)
419419
defer context.Close()
420420

421-
_, err = context.Run(RunAddressData{Ephemeral: largeValue}, 0)
421+
_, err = context.Run(RunAddressData{Ephemeral: largeValue})
422422
require.Equal(t, errors.ErrTimeout, err)
423423
require.GreaterOrEqual(t, context.Stats().Timers["_dd.appsec.waf.duration_ext"], time.Millisecond)
424424
require.GreaterOrEqual(t, context.Stats().Timers["_dd.appsec.waf.encode"], time.Millisecond)
@@ -431,7 +431,7 @@ func TestTimeout(t *testing.T) {
431431
defer context.Close()
432432

433433
for i := 0; i < 1000 && err != errors.ErrTimeout; i++ {
434-
_, err = context.Run(RunAddressData{Persistent: normalValue}, 0)
434+
_, err = context.Run(RunAddressData{Persistent: normalValue})
435435
}
436436

437437
require.Equal(t, errors.ErrTimeout, err)
@@ -457,7 +457,7 @@ func TestMatching(t *testing.T) {
457457
ephemeral := map[string]interface{}{
458458
"my.other.input": map[string]bool{"safe": true},
459459
}
460-
res, err := wafCtx.Run(RunAddressData{Persistent: values, Ephemeral: ephemeral}, time.Second)
460+
res, err := wafCtx.Run(RunAddressData{Persistent: values, Ephemeral: ephemeral})
461461
require.NoError(t, err)
462462
require.Nil(t, res.Events)
463463
require.Nil(t, res.Actions)
@@ -466,7 +466,7 @@ func TestMatching(t *testing.T) {
466466
values = map[string]interface{}{
467467
"server.request.uri.raw": "something",
468468
}
469-
res, err = wafCtx.Run(RunAddressData{Persistent: values, Ephemeral: ephemeral}, time.Second)
469+
res, err = wafCtx.Run(RunAddressData{Persistent: values, Ephemeral: ephemeral})
470470
require.NoError(t, err)
471471
require.Nil(t, res.Events)
472472
require.Nil(t, res.Actions)
@@ -476,25 +476,25 @@ func TestMatching(t *testing.T) {
476476
values = map[string]interface{}{
477477
"my.input": "Arachni",
478478
}
479-
res, err = wafCtx.Run(RunAddressData{Persistent: values, Ephemeral: ephemeral}, time.Second)
479+
res, err = wafCtx.Run(RunAddressData{Persistent: values, Ephemeral: ephemeral})
480480
require.NoError(t, err)
481481
require.NotEmpty(t, res.Events)
482482
require.Nil(t, res.Actions)
483483

484484
// Not matching anymore since it already matched before
485-
res, err = wafCtx.Run(RunAddressData{Persistent: values, Ephemeral: ephemeral}, time.Second)
485+
res, err = wafCtx.Run(RunAddressData{Persistent: values, Ephemeral: ephemeral})
486486
require.NoError(t, err)
487487
require.Nil(t, res.Events)
488488
require.Nil(t, res.Actions)
489489

490490
// Nil values
491-
res, err = wafCtx.Run(RunAddressData{}, time.Second)
491+
res, err = wafCtx.Run(RunAddressData{})
492492
require.NoError(t, err)
493493
require.Nil(t, res.Events)
494494
require.Nil(t, res.Actions)
495495

496496
// Empty values
497-
res, err = wafCtx.Run(RunAddressData{Persistent: map[string]interface{}{}, Ephemeral: ephemeral}, time.Second)
497+
res, err = wafCtx.Run(RunAddressData{Persistent: map[string]interface{}{}, Ephemeral: ephemeral})
498498
require.NoError(t, err)
499499
require.Nil(t, res.Events)
500500
require.Nil(t, res.Actions)
@@ -524,7 +524,7 @@ func TestMatchingEphemeralAndPersistent(t *testing.T) {
524524
Ephemeral: map[string]any{"my.input": "Arachni/ephemeral"},
525525
}
526526

527-
res, err := wafCtx.Run(addresses, time.Second)
527+
res, err := wafCtx.Run(addresses)
528528
require.NoError(t, err)
529529

530530
// There is only one hit here
@@ -546,7 +546,7 @@ func TestMatchingEphemeralAndPersistent(t *testing.T) {
546546
)
547547

548548
// Matche the same inputs a second time...
549-
res, err = wafCtx.Run(addresses, time.Second)
549+
res, err = wafCtx.Run(addresses)
550550
require.NoError(t, err)
551551
// There shouldn't be any match anymore...
552552
require.Empty(t, res.Events)
@@ -579,7 +579,7 @@ func TestMatchingEphemeral(t *testing.T) {
579579
input2: "go client",
580580
},
581581
}
582-
res, err := wafCtx.Run(runAddresses, time.Second)
582+
res, err := wafCtx.Run(runAddresses)
583583
require.NoError(t, err)
584584
require.Nil(t, res.Events)
585585
require.Nil(t, res.Actions)
@@ -593,7 +593,7 @@ func TestMatchingEphemeral(t *testing.T) {
593593
"server.request.body.raw": "something",
594594
},
595595
}
596-
res, err = wafCtx.Run(runAddresses, time.Second)
596+
res, err = wafCtx.Run(runAddresses)
597597
require.NoError(t, err)
598598
require.Nil(t, res.Events)
599599
require.Nil(t, res.Actions)
@@ -610,13 +610,13 @@ func TestMatchingEphemeral(t *testing.T) {
610610

611611
// Matching
612612
// Note a WAF rule with ephemeral addresses may match more than once!
613-
res, err = wafCtx.Run(runAddresses, time.Second)
613+
res, err = wafCtx.Run(runAddresses)
614614
require.NoError(t, err)
615615
require.Len(t, res.Events, 2) // 1 ephemeral, 1 persistent [!!Only if the rules have a different tags.type value!!]
616616
require.Nil(t, res.Actions)
617617

618618
// Ephemeral address should still match, persistent shouldn't anymore
619-
res, err = wafCtx.Run(runAddresses, time.Second)
619+
res, err = wafCtx.Run(runAddresses)
620620
require.NoError(t, err)
621621
require.Len(t, res.Events, 1) // 1 ephemeral
622622
require.Nil(t, res.Actions)
@@ -653,7 +653,7 @@ func TestMatchingEphemeralOnly(t *testing.T) {
653653
input1: "go client",
654654
},
655655
}
656-
res, err := wafCtx.Run(runAddresses, time.Second)
656+
res, err := wafCtx.Run(runAddresses)
657657
require.NoError(t, err)
658658
require.Nil(t, res.Events)
659659
require.Nil(t, res.Actions)
@@ -664,7 +664,7 @@ func TestMatchingEphemeralOnly(t *testing.T) {
664664
"server.request.uri.raw": "something",
665665
},
666666
}
667-
res, err = wafCtx.Run(runAddresses, time.Second)
667+
res, err = wafCtx.Run(runAddresses)
668668
require.NoError(t, err)
669669
require.Nil(t, res.Events)
670670
require.Nil(t, res.Actions)
@@ -677,7 +677,7 @@ func TestMatchingEphemeralOnly(t *testing.T) {
677677
}
678678

679679
// Matching
680-
res, err = wafCtx.Run(runAddresses, time.Second)
680+
res, err = wafCtx.Run(runAddresses)
681681
require.NoError(t, err)
682682
require.Len(t, res.Events, 1) // 1 ephemeral
683683
require.Nil(t, res.Actions)
@@ -711,7 +711,7 @@ func TestActions(t *testing.T) {
711711
ephemeral := map[string]interface{}{
712712
"my.other.input": map[string]bool{"safe": true},
713713
}
714-
res, err := wafCtx.Run(RunAddressData{Persistent: values, Ephemeral: ephemeral}, time.Second)
714+
res, err := wafCtx.Run(RunAddressData{Persistent: values, Ephemeral: ephemeral})
715715
require.NoError(t, err)
716716
require.NotEmpty(t, res.Events)
717717
for _, aType := range expectedActionsTypes {
@@ -780,7 +780,7 @@ func TestConcurrency(t *testing.T) {
780780
ephemeralData := map[string]interface{}{
781781
"server.request.body": bodies[i],
782782
}
783-
res, err := wafCtx.Run(RunAddressData{Persistent: data, Ephemeral: ephemeralData}, time.Minute)
783+
res, err := wafCtx.Run(RunAddressData{Persistent: data, Ephemeral: ephemeralData})
784784
if err != nil {
785785
panic(err)
786786
}
@@ -805,7 +805,7 @@ func TestConcurrency(t *testing.T) {
805805
ephemeral := map[string]interface{}{
806806
"server.request.body": map[string]bool{"safe": true},
807807
}
808-
res, err := wafCtx.Run(RunAddressData{Persistent: data, Ephemeral: ephemeral}, time.Second)
808+
res, err := wafCtx.Run(RunAddressData{Persistent: data, Ephemeral: ephemeral})
809809
require.NoError(t, err)
810810
require.NotEmpty(t, res.Events)
811811
})
@@ -851,7 +851,7 @@ func TestConcurrency(t *testing.T) {
851851
}
852852
ephemeral := map[string]interface{}{"server.request.body": bodies[i]}
853853

854-
res, err := wafCtx.Run(RunAddressData{Persistent: data, Ephemeral: ephemeral}, time.Minute)
854+
res, err := wafCtx.Run(RunAddressData{Persistent: data, Ephemeral: ephemeral})
855855

856856
if err != nil {
857857
panic(err)
@@ -870,7 +870,7 @@ func TestConcurrency(t *testing.T) {
870870
ephemeral := map[string]interface{}{
871871
"server.request.body": map[string]bool{"safe": true},
872872
}
873-
res, err := wafCtx.Run(RunAddressData{Persistent: data, Ephemeral: ephemeral}, time.Hour)
873+
res, err := wafCtx.Run(RunAddressData{Persistent: data, Ephemeral: ephemeral})
874874
require.NoError(t, err)
875875
require.NotEmpty(t, res.Events)
876876
require.Nil(t, res.Actions)
@@ -969,7 +969,7 @@ func TestConcurrency(t *testing.T) {
969969
// effectively releases the WAF context, and between 0 and N calls to wafCtx.Run(...) are
970970
// done (those that land after `wafCtx.Close()` happened will be silent no-ops).
971971
if n%2 == 0 {
972-
wafCtx.Run(RunAddressData{Ephemeral: data}, time.Hour)
972+
wafCtx.Run(RunAddressData{Ephemeral: data})
973973
} else {
974974
wafCtx.Close()
975975
}
@@ -1118,7 +1118,7 @@ func TestMetrics(t *testing.T) {
11181118
"server.request.body": map[string]bool{"safe": true},
11191119
}
11201120
start := time.Now()
1121-
res, err := wafCtx.Run(RunAddressData{Persistent: data, Ephemeral: ephemeral}, time.Second)
1121+
res, err := wafCtx.Run(RunAddressData{Persistent: data, Ephemeral: ephemeral})
11221122
elapsedNS := time.Since(start).Nanoseconds()
11231123
require.NoError(t, err)
11241124
require.NotNil(t, res.Events)
@@ -1146,7 +1146,7 @@ func TestMetrics(t *testing.T) {
11461146
}
11471147

11481148
for i := uint64(1); i <= 10; i++ {
1149-
_, err := wafCtx.Run(RunAddressData{Persistent: data, Ephemeral: ephemeral}, 0)
1149+
_, err := wafCtx.Run(RunAddressData{Persistent: data, Ephemeral: ephemeral})
11501150
require.Equal(t, errors.ErrTimeout, err)
11511151
require.Equal(t, wafCtx.TotalTimeouts(), i)
11521152
}
@@ -1169,7 +1169,7 @@ func TestObfuscatorConfig(t *testing.T) {
11691169
ephemeral := map[string]interface{}{
11701170
"server.request.body": map[string]bool{"safe": true},
11711171
}
1172-
res, err := wafCtx.Run(RunAddressData{Persistent: data, Ephemeral: ephemeral}, time.Second)
1172+
res, err := wafCtx.Run(RunAddressData{Persistent: data, Ephemeral: ephemeral})
11731173
require.NoError(t, err)
11741174
require.NotNil(t, res.Events)
11751175
require.Nil(t, res.Actions)
@@ -1192,7 +1192,7 @@ func TestObfuscatorConfig(t *testing.T) {
11921192
ephemeral := map[string]interface{}{
11931193
"server.request.body": map[string]bool{"safe": true},
11941194
}
1195-
res, err := wafCtx.Run(RunAddressData{Persistent: data, Ephemeral: ephemeral}, time.Second)
1195+
res, err := wafCtx.Run(RunAddressData{Persistent: data, Ephemeral: ephemeral})
11961196
require.NoError(t, err)
11971197
require.NotNil(t, res.Events)
11981198
require.Nil(t, res.Actions)
@@ -1215,7 +1215,7 @@ func TestObfuscatorConfig(t *testing.T) {
12151215
ephemeral := map[string]interface{}{
12161216
"server.request.body": map[string]bool{"safe": true},
12171217
}
1218-
res, err := wafCtx.Run(RunAddressData{Persistent: data, Ephemeral: ephemeral}, time.Second)
1218+
res, err := wafCtx.Run(RunAddressData{Persistent: data, Ephemeral: ephemeral})
12191219
require.NoError(t, err)
12201220
require.NotNil(t, res.Events)
12211221
require.Nil(t, res.Actions)
@@ -1249,7 +1249,7 @@ func TestTruncationInformation(t *testing.T) {
12491249
"container_too_large": make([]bool, bindings.WafMaxContainerSize+extra+2),
12501250
},
12511251
},
1252-
}, time.Second)
1252+
})
12531253
require.NoError(t, err)
12541254
require.Equal(t, map[TruncationReason][]int{
12551255
StringTooLong: {bindings.WafMaxStringLength + extra + 2, bindings.WafMaxStringLength + extra},

0 commit comments

Comments
 (0)