]> Sergey Matveev's repositories - btrtrc.git/commitdiff
dht: Export some useful variables
authorMatt Joiner <anacrolix@gmail.com>
Mon, 29 Jun 2015 09:36:08 +0000 (19:36 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Mon, 29 Jun 2015 09:36:08 +0000 (19:36 +1000)
dht/dht.go
dht/expvar.go [new file with mode: 0644]

index e5f68511f8209aa9c8c4b0f36ac31fb56758cc3f..ff27fcff04afeaa9163bfff471bd425cfa5c31fa 100644 (file)
@@ -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 (file)
index 0000000..af31d08
--- /dev/null
@@ -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")
+)