Skip to content

Commit 1a5c656

Browse files
committed
Remove transport protocol knowhow from CNetMessage / net processing
1 parent 6294ecd commit 1a5c656

File tree

3 files changed

+5
-3
lines changed

3 files changed

+5
-3
lines changed

src/net.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -601,7 +601,7 @@ bool CNode::ReceiveMsgBytes(const char *pch, unsigned int nBytes, bool& complete
601601
if (i == mapRecvBytesPerMsgCmd.end())
602602
i = mapRecvBytesPerMsgCmd.find(NET_MESSAGE_COMMAND_OTHER);
603603
assert(i != mapRecvBytesPerMsgCmd.end());
604-
i->second += m_deserializer->hdr.nMessageSize + CMessageHeader::HEADER_SIZE;
604+
i->second += msg.m_raw_message_size;
605605

606606
// push the message to the process queue,
607607
vRecvMsg.push_back(std::move(msg));
@@ -707,6 +707,7 @@ CNetMessage TransportDeserializer::GetMessage(const CMessageHeader::MessageStart
707707
// store command string, payload size
708708
msg.m_command = hdr.GetCommand();
709709
msg.m_message_size = hdr.nMessageSize;
710+
msg.m_raw_message_size = hdr.nMessageSize + CMessageHeader::HEADER_SIZE;
710711

711712
msg.m_valid_checksum = (memcmp(hash.begin(), hdr.pchChecksum, CMessageHeader::CHECKSUM_SIZE) == 0);
712713
if (!msg.m_valid_checksum) {
@@ -1377,7 +1378,7 @@ void CConnman::SocketHandler()
13771378
for (; it != pnode->vRecvMsg.end(); ++it) {
13781379
// vRecvMsg contains only completed CNetMessage
13791380
// the single possible partially deserialized message are held by TransportDeserializer
1380-
nSizeAdded += it->m_recv.size() + CMessageHeader::HEADER_SIZE;
1381+
nSizeAdded += it->m_raw_message_size;
13811382
}
13821383
{
13831384
LOCK(pnode->cs_vProcessMsg);

src/net.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -621,6 +621,7 @@ class CNetMessage {
621621
bool m_valid_header = false;
622622
bool m_valid_checksum = false;
623623
uint32_t m_message_size = 0; // size of the payload
624+
uint32_t m_raw_message_size = 0; // used wire size of the message (including header/checksum)
624625
std::string m_command;
625626

626627
CNetMessage(const CDataStream& recv_in) : m_recv(std::move(recv_in)) {}

src/net_processing.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3260,7 +3260,7 @@ bool PeerLogicValidation::ProcessMessages(CNode* pfrom, std::atomic<bool>& inter
32603260
return false;
32613261
// Just take one message
32623262
msgs.splice(msgs.begin(), pfrom->vProcessMsg, pfrom->vProcessMsg.begin());
3263-
pfrom->nProcessQueueSize -= msgs.front().m_recv.size() + CMessageHeader::HEADER_SIZE;
3263+
pfrom->nProcessQueueSize -= msgs.front().m_raw_message_size;
32643264
pfrom->fPauseRecv = pfrom->nProcessQueueSize > connman->GetReceiveFloodSize();
32653265
fMoreWork = !pfrom->vProcessMsg.empty();
32663266
}

0 commit comments

Comments
 (0)