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