From c41aa941f3703d263ac475470c731ac12d27ff5b Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Mon, 29 Jun 2015 19:36:08 +1000 Subject: [PATCH] dht: Export some useful variables --- dht/dht.go | 4 ++++ dht/expvar.go | 12 ++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 dht/expvar.go diff --git a/dht/dht.go b/dht/dht.go index e5f68511..ff27fcff 100644 --- a/dht/dht.go +++ b/dht/dht.go @@ -585,6 +585,7 @@ func (s *Server) processPacket(b []byte, addr dHTAddr) { var d Msg err := bencode.Unmarshal(b, &d) if err != nil { + readUnmarshalError.Add(1) func() { if se, ok := err.(*bencode.SyntaxError); ok { // The message was truncated. @@ -607,6 +608,7 @@ func (s *Server) processPacket(b []byte, addr dHTAddr) { s.mu.Lock() defer s.mu.Unlock() if d["y"] == "q" { + readQuery.Add(1) s.handleQuery(addr, d) return } @@ -629,6 +631,7 @@ func (s *Server) serve() error { if err != nil { return err } + read.Add(1) if n == len(b) { logonce.Stderr.Printf("received dht packet exceeds buffer size") continue @@ -637,6 +640,7 @@ func (s *Server) serve() error { blocked := s.ipBlocked(util.AddrIP(addr)) s.mu.Unlock() if blocked { + readBlocked.Add(1) continue } s.processPacket(b[:n], newDHTAddr(addr)) diff --git a/dht/expvar.go b/dht/expvar.go new file mode 100644 index 00000000..af31d087 --- /dev/null +++ b/dht/expvar.go @@ -0,0 +1,12 @@ +package dht + +import ( + "expvar" +) + +var ( + read = expvar.NewInt("dhtRead") + readBlocked = expvar.NewInt("dhtReadBlocked") + readUnmarshalError = expvar.NewInt("dhtReadUnmarshalError") + readQuery = expvar.NewInt("dhtReadQuery") +)