mirror of
https://github.com/shadow1ng/fscan.git
synced 2026-09-25 04:31:52 +08:00
respect per-call session dial timeouts
This commit is contained in:
+36
-1
@@ -1,6 +1,9 @@
|
||||
package common
|
||||
|
||||
import "testing"
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestScanSessionLogMethodsHonorSilentConfig(t *testing.T) {
|
||||
loggerMu.Lock()
|
||||
@@ -30,3 +33,35 @@ func TestScanSessionLogMethodsHonorSilentConfig(t *testing.T) {
|
||||
t.Fatal("silent session log methods initialized global logger")
|
||||
}
|
||||
}
|
||||
|
||||
func TestScanSessionDialerCacheIsTimeoutAware(t *testing.T) {
|
||||
cfg := NewConfig()
|
||||
cfg.Timeout = 5 * time.Second
|
||||
session := NewScanSession(cfg, NewState(), &FlagVars{})
|
||||
|
||||
shortTimeout := 100 * time.Millisecond
|
||||
longTimeout := 2 * time.Second
|
||||
|
||||
shortDialer, err := session.getDialer(shortTimeout)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
shortDialerAgain, err := session.getDialer(shortTimeout)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
longDialer, err := session.getDialer(longTimeout)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if shortDialer != shortDialerAgain {
|
||||
t.Fatal("same timeout should reuse the session dialer")
|
||||
}
|
||||
if shortDialer == longDialer {
|
||||
t.Fatal("different timeouts should not share one session dialer")
|
||||
}
|
||||
if got := session.createProxyConfig(shortTimeout).Timeout; got != shortTimeout {
|
||||
t.Fatalf("proxy timeout = %v, want %v", got, shortTimeout)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user