diff options
author | Kurkó Mihály <kurkomisi@users.noreply.github.com> | 2018-11-08 19:11:20 +0800 |
---|---|---|
committer | Felix Lange <fjl@users.noreply.github.com> | 2018-11-08 19:11:20 +0800 |
commit | 503993c819f0a4e7e53f6739e90497106ebdfe09 (patch) | |
tree | 0850939edc6f767e6c768c19a8263bdda8457eb1 /p2p | |
parent | cf3b187bdef59078ba6570a2f5ee046ab87bcefd (diff) | |
download | go-tangerine-503993c819f0a4e7e53f6739e90497106ebdfe09.tar go-tangerine-503993c819f0a4e7e53f6739e90497106ebdfe09.tar.gz go-tangerine-503993c819f0a4e7e53f6739e90497106ebdfe09.tar.bz2 go-tangerine-503993c819f0a4e7e53f6739e90497106ebdfe09.tar.lz go-tangerine-503993c819f0a4e7e53f6739e90497106ebdfe09.tar.xz go-tangerine-503993c819f0a4e7e53f6739e90497106ebdfe09.tar.zst go-tangerine-503993c819f0a4e7e53f6739e90497106ebdfe09.zip |
p2p: use enode.ID type in metered connection (#17933)
Change the type of the metered connection's id field from string to enode.ID.
Diffstat (limited to 'p2p')
-rw-r--r-- | p2p/metrics.go | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/p2p/metrics.go b/p2p/metrics.go index 6a7c0bad3..d7873f39a 100644 --- a/p2p/metrics.go +++ b/p2p/metrics.go @@ -74,7 +74,7 @@ const ( type MeteredPeerEvent struct { Type MeteredPeerEventType // Type of peer event IP net.IP // IP address of the peer - ID string // NodeID of the peer + ID enode.ID // NodeID of the peer Elapsed time.Duration // Time elapsed between the connection and the handshake/disconnection Ingress uint64 // Ingress count at the moment of the event Egress uint64 // Egress count at the moment of the event @@ -93,7 +93,7 @@ type meteredConn struct { connected time.Time // Connection time of the peer ip net.IP // IP address of the peer - id string // NodeID of the peer + id enode.ID // NodeID of the peer // trafficMetered denotes if the peer is registered in the traffic registries. // Its value is true if the metered peer count doesn't reach the limit in the @@ -160,8 +160,7 @@ func (c *meteredConn) Write(b []byte) (n int, err error) { // handshakeDone is called when a peer handshake is done. Registers the peer to // the ingress and the egress traffic registries using the peer's IP and node ID, // also emits connect event. -func (c *meteredConn) handshakeDone(nodeID enode.ID) { - id := nodeID.String() +func (c *meteredConn) handshakeDone(id enode.ID) { if atomic.AddInt32(&meteredPeerCount, 1) >= MeteredPeerLimit { // Don't register the peer in the traffic registries. atomic.AddInt32(&meteredPeerCount, -1) @@ -170,7 +169,7 @@ func (c *meteredConn) handshakeDone(nodeID enode.ID) { c.lock.Unlock() log.Warn("Metered peer count reached the limit") } else { - key := fmt.Sprintf("%s/%s", c.ip, id) + key := fmt.Sprintf("%s/%s", c.ip, id.String()) c.lock.Lock() c.id, c.trafficMetered = id, true c.ingressMeter = metrics.NewRegisteredMeter(key, PeerIngressRegistry) @@ -190,7 +189,7 @@ func (c *meteredConn) handshakeDone(nodeID enode.ID) { func (c *meteredConn) Close() error { err := c.Conn.Close() c.lock.RLock() - if c.id == "" { + if c.id == (enode.ID{}) { // If the peer disconnects before the handshake. c.lock.RUnlock() meteredPeerFeed.Send(MeteredPeerEvent{ |