From 29b07afea1d53760abb1d0b5b2b96b136239a2b8 Mon Sep 17 00:00:00 2001 From: Aleksandr Razumov Date: Sat, 11 Aug 2018 20:22:21 +0300 Subject: [PATCH] {agent,client: add NoopHandler --- agent.go | 7 +++++++ agent_test.go | 10 ++++------ api/stun1.14.txt | 1 + client_test.go | 4 ++-- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/agent.go b/agent.go index 72f69c2..6a8a473 100644 --- a/agent.go +++ b/agent.go @@ -6,8 +6,15 @@ import ( "time" ) +// NoopHandler just discards any event. +var NoopHandler Handler = func(e Event) {} + // NewAgent initializes and returns new Agent with provided handler. +// If h is nil, the NoopHandler will be used. func NewAgent(h Handler) *Agent { + if h == nil { + h = NoopHandler + } a := &Agent{ transactions: make(map[transactionID]agentTransaction), handler: h, diff --git a/agent_test.go b/agent_test.go index 44154bc..245429a 100644 --- a/agent_test.go +++ b/agent_test.go @@ -56,7 +56,7 @@ func TestAgent_Process(t *testing.T) { } func TestAgent_Start(t *testing.T) { - a := NewAgent(noopHandler) + a := NewAgent(nil) id := NewTransactionID() deadline := time.Now().AddDate(0, 0, 1) if err := a.Start(id, deadline); err != nil { @@ -120,10 +120,8 @@ func TestAgent_Stop(t *testing.T) { } } -var noopHandler = func(e Event) {} - func TestAgent_GC(t *testing.T) { - a := NewAgent(noopHandler) + a := NewAgent(nil) shouldTimeOutID := make(map[transactionID]bool) deadline := time.Date(2027, time.November, 21, 23, 0, 0, 0, @@ -170,7 +168,7 @@ func TestAgent_GC(t *testing.T) { } func BenchmarkAgent_GC(b *testing.B) { - a := NewAgent(noopHandler) + a := NewAgent(nil) deadline := time.Now().AddDate(0, 0, 1) for i := 0; i < agentCollectCap; i++ { if err := a.Start(NewTransactionID(), deadline); err != nil { @@ -192,7 +190,7 @@ func BenchmarkAgent_GC(b *testing.B) { } func BenchmarkAgent_Process(b *testing.B) { - a := NewAgent(noopHandler) + a := NewAgent(nil) deadline := time.Now().AddDate(0, 0, 1) for i := 0; i < 1000; i++ { if err := a.Start(NewTransactionID(), deadline); err != nil { diff --git a/api/stun1.14.txt b/api/stun1.14.txt index ed6c98a..315911b 100644 --- a/api/stun1.14.txt +++ b/api/stun1.14.txt @@ -18,3 +18,4 @@ pkg github.com/gortc/stun, type ClientOptions struct, Clock Clock pkg github.com/gortc/stun, type ClientOptions struct, Collector Collector pkg github.com/gortc/stun, type ClientOptions struct, RTO time.Duration pkg github.com/gortc/stun, func NewAgent(Handler) *Agent +pkg github.com/gortc/stun, var NoopHandler Handler diff --git a/client_test.go b/client_test.go index e55b24b..65a80e0 100644 --- a/client_test.go +++ b/client_test.go @@ -380,7 +380,7 @@ func TestClientConnErr(t *testing.T) { if err := c.Do(m, nil); err == nil { t.Error("error expected") } - if err := c.Do(m, noopHandler); err == nil { + if err := c.Do(m, NoopHandler); err == nil { t.Error("error expected") } } @@ -406,7 +406,7 @@ func TestClientConnErrStopErr(t *testing.T) { } }() m := MustBuild(TransactionID) - if err := c.Do(m, noopHandler); err == nil { + if err := c.Do(m, NoopHandler); err == nil { t.Error("error expected") } }