From db1c2e358c390da734f3c1a3501796e5deb96d96 Mon Sep 17 00:00:00 2001 From: Kleissner Date: Tue, 11 May 2021 09:40:49 +0200 Subject: [PATCH] Store Features field in peer structure --- Network.go | 7 +++++-- Peer ID.go | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/Network.go b/Network.go index cb8472c..07c3475 100644 --- a/Network.go +++ b/Network.go @@ -98,8 +98,8 @@ func (network *Network) send(IP net.IP, port int, raw []byte) (err error) { return err } -// Currently packets are maxed at 4 KB. This is going to be refined. -const maxPacketSize = 4096 +// Max packet size is 64 KB. +const maxPacketSize = 65536 // Listen starts listening for incoming packets on the given UDP connection func (network *Network) Listen() { @@ -172,6 +172,7 @@ func packetWorker(packets <-chan networkWire) { if len(announce.UserAgent) > 0 { peer.UserAgent = announce.UserAgent } + peer.Features = announce.Features peer.cmdAnouncement(announce) } @@ -192,6 +193,7 @@ func packetWorker(packets <-chan networkWire) { if len(response.UserAgent) > 0 { peer.UserAgent = response.UserAgent } + peer.Features = response.Features peer.cmdResponse(response) } @@ -201,6 +203,7 @@ func packetWorker(packets <-chan networkWire) { if len(announce.UserAgent) > 0 { peer.UserAgent = announce.UserAgent } + peer.Features = response.Features peer.cmdLocalDiscovery(announce) } diff --git a/Peer ID.go b/Peer ID.go index e8cf66b..cd19c03 100644 --- a/Peer ID.go +++ b/Peer ID.go @@ -90,6 +90,7 @@ type PeerInfo struct { messageSequence uint32 // Sequence number. Increased with every message. IsRootPeer bool // Whether the peer is a trusted root peer. UserAgent string // User Agent reported by remote peer. Empty if no Announcement/Response message was yet received. + Features uint8 // Feature bit array. 0 = IPv4_LISTEN, 1 = IPv6_LISTEN // statistics StatsPacketSent uint64 // Count of packets sent