Skip to content

Commit 2716647

Browse files
committed
Give V1TransportDeserializer an m_node_id member
This is intended to only be used for logging. This will allow log messages in the following commits to keep recording the peer's ID, even when logging is moved into V1TransportDeserializer.
1 parent b1291b2 commit 2716647

File tree

3 files changed

+13
-6
lines changed

3 files changed

+13
-6
lines changed

src/net.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -699,10 +699,11 @@ CNetMessage V1TransportDeserializer::GetMessage(const CMessageHeader::MessageSta
699699

700700
msg.m_valid_checksum = (memcmp(hash.begin(), hdr.pchChecksum, CMessageHeader::CHECKSUM_SIZE) == 0);
701701
if (!msg.m_valid_checksum) {
702-
LogPrint(BCLog::NET, "CHECKSUM ERROR (%s, %u bytes), expected %s was %s\n",
702+
LogPrint(BCLog::NET, "CHECKSUM ERROR (%s, %u bytes), expected %s was %s, peer=%d\n",
703703
SanitizeString(msg.m_command), msg.m_message_size,
704704
HexStr(Span<uint8_t>(hash.begin(), hash.begin() + CMessageHeader::CHECKSUM_SIZE)),
705-
HexStr(hdr.pchChecksum));
705+
HexStr(hdr.pchChecksum),
706+
m_node_id);
706707
}
707708

708709
// store receive time
@@ -2828,7 +2829,7 @@ CNode::CNode(NodeId idIn, ServiceFlags nLocalServicesIn, int nMyStartingHeightIn
28282829
LogPrint(BCLog::NET, "Added connection peer=%d\n", id);
28292830
}
28302831

2831-
m_deserializer = MakeUnique<V1TransportDeserializer>(V1TransportDeserializer(Params().MessageStart(), SER_NETWORK, INIT_PROTO_VERSION));
2832+
m_deserializer = MakeUnique<V1TransportDeserializer>(V1TransportDeserializer(Params().MessageStart(), GetId(), SER_NETWORK, INIT_PROTO_VERSION));
28322833
m_serializer = MakeUnique<V1TransportSerializer>(V1TransportSerializer());
28332834
}
28342835

src/net.h

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -739,6 +739,7 @@ class TransportDeserializer {
739739
class V1TransportDeserializer final : public TransportDeserializer
740740
{
741741
private:
742+
const NodeId m_node_id; // Only for logging
742743
mutable CHash256 hasher;
743744
mutable uint256 data_hash;
744745
bool in_data; // parsing header (false) or data (true)
@@ -764,8 +765,12 @@ class V1TransportDeserializer final : public TransportDeserializer
764765
}
765766

766767
public:
767-
768-
V1TransportDeserializer(const CMessageHeader::MessageStartChars& pchMessageStartIn, int nTypeIn, int nVersionIn) : hdrbuf(nTypeIn, nVersionIn), hdr(pchMessageStartIn), vRecv(nTypeIn, nVersionIn) {
768+
V1TransportDeserializer(const CMessageHeader::MessageStartChars& pchMessageStartIn, const NodeId node_id, int nTypeIn, int nVersionIn)
769+
: m_node_id(node_id),
770+
hdrbuf(nTypeIn, nVersionIn),
771+
hdr(pchMessageStartIn),
772+
vRecv(nTypeIn, nVersionIn)
773+
{
769774
Reset();
770775
}
771776

src/test/fuzz/p2p_transport_deserializer.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,8 @@ void initialize()
1919

2020
void test_one_input(const std::vector<uint8_t>& buffer)
2121
{
22-
V1TransportDeserializer deserializer{Params().MessageStart(), SER_NETWORK, INIT_PROTO_VERSION};
22+
// Construct deserializer, with a dummy NodeId
23+
V1TransportDeserializer deserializer{Params().MessageStart(), (NodeId)0, SER_NETWORK, INIT_PROTO_VERSION};
2324
const char* pch = (const char*)buffer.data();
2425
size_t n_bytes = buffer.size();
2526
while (n_bytes > 0) {

0 commit comments

Comments
 (0)