From 1e7bb0c40c875929a15a1eff37f6fefcc58b4ae7 Mon Sep 17 00:00:00 2001 From: Kleissner Date: Sun, 25 Apr 2021 22:12:59 +0200 Subject: [PATCH] Fix #19 IPv4 address format in byte form --- Message Encoding.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Message Encoding.go b/Message Encoding.go index 5d57837..568c7ac 100644 --- a/Message Encoding.go +++ b/Message Encoding.go @@ -373,6 +373,9 @@ func decodePeerRecord(data []byte, count int) (hash2Peers []Hash2Peer, read int, ipB := make([]byte, 16) copy(ipB[:], data[index+33:index+33+16]) peer.IP = ipB + if peer.IP.To4() != nil { // If IPv4, convert to native 4-byte representation + peer.IP = peer.IP.To4() + } peer.Port = binary.LittleEndian.Uint16(data[index+49 : index+49+2]) peer.LastContact = binary.LittleEndian.Uint32(data[index+51 : index+51+4]) @@ -665,7 +668,7 @@ createPacketLoop: index := packetSize copy(raw[index:index+33], peer.PublicKey.SerializeCompressed()) - copy(raw[index+33:index+33+16], peer.IP) + copy(raw[index+33:index+33+16], peer.IP.To16()) binary.LittleEndian.PutUint16(raw[index+49:index+51], peer.Port) binary.LittleEndian.PutUint32(raw[index+51:index+55], peer.LastContact) raw[index+55] = 1 @@ -687,7 +690,7 @@ createPacketLoop: index := packetSize copy(raw[index:index+33], peer.PublicKey.SerializeCompressed()) - copy(raw[index+33:index+33+16], peer.IP) + copy(raw[index+33:index+33+16], peer.IP.To16()) binary.LittleEndian.PutUint16(raw[index+49:index+51], peer.Port) binary.LittleEndian.PutUint32(raw[index+51:index+55], peer.LastContact) raw[index+55] = 0