From: Matt Joiner Date: Wed, 5 Aug 2015 22:59:30 +0000 (+1000) Subject: dht: Short circuit non-DHT traffic X-Git-Tag: v1.0.0~1071 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=a7c374cff7616f68fadcbf146c219849992b6e43;p=btrtrc.git dht: Short circuit non-DHT traffic --- diff --git a/dht/dht.go b/dht/dht.go index 6585a6ce..91276855 100644 --- a/dht/dht.go +++ b/dht/dht.go @@ -604,6 +604,11 @@ func (s *Server) init() (err error) { } func (s *Server) processPacket(b []byte, addr dHTAddr) { + if len(b) < 2 || b[0] != 'd' || b[len(b)-1] != 'e' { + // KRPC messages are bencoded dicts. + readNotKRPCDict.Add(1) + return + } var d Msg err := bencode.Unmarshal(b, &d) if err != nil { diff --git a/dht/expvar.go b/dht/expvar.go index fe1fc06c..4fdf69ce 100644 --- a/dht/expvar.go +++ b/dht/expvar.go @@ -7,6 +7,7 @@ import ( var ( read = expvar.NewInt("dhtRead") readBlocked = expvar.NewInt("dhtReadBlocked") + readNotKRPCDict = expvar.NewInt("dhtReadNotKRPCDict") readUnmarshalError = expvar.NewInt("dhtReadUnmarshalError") readQuery = expvar.NewInt("dhtReadQuery") announceErrors = expvar.NewInt("dhtAnnounceErrors")