aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
author0xb10c <0xb10c@gmail.com>2021-05-20 16:54:54 +0200
committer0xb10c <0xb10c@gmail.com>2021-07-27 17:12:16 +0200
commit4224dec22baa66547303840707cf1d4f15a49b20 (patch)
tree467d8bc70b3a3d3ada1fc4a2281ff2725031f09d /src
parent469b71ae629228b2591a55831817a0e5fad89360 (diff)
downloadbitcoin-4224dec22baa66547303840707cf1d4f15a49b20.tar.xz
tracing: Tracepoints for in- and outbound P2P msgs
Can be used to monitor in- and outbound node traffic. Based on ealier work by jb55. Co-authored-by: William Casarin <jb55@jb55.com>
Diffstat (limited to 'src')
-rw-r--r--src/net.cpp12
-rw-r--r--src/net_processing.cpp10
2 files changed, 21 insertions, 1 deletions
diff --git a/src/net.cpp b/src/net.cpp
index 3a1bb138ab..8ef770ede2 100644
--- a/src/net.cpp
+++ b/src/net.cpp
@@ -25,6 +25,7 @@
#include <util/sock.h>
#include <util/strencodings.h>
#include <util/thread.h>
+#include <util/trace.h>
#include <util/translation.h>
#ifdef WIN32
@@ -3017,11 +3018,20 @@ bool CConnman::NodeFullyConnected(const CNode* pnode)
void CConnman::PushMessage(CNode* pnode, CSerializedNetMsg&& msg)
{
size_t nMessageSize = msg.data.size();
- LogPrint(BCLog::NET, "sending %s (%d bytes) peer=%d\n", SanitizeString(msg.m_type), nMessageSize, pnode->GetId());
+ LogPrint(BCLog::NET, "sending %s (%d bytes) peer=%d\n", msg.m_type, nMessageSize, pnode->GetId());
if (gArgs.GetBoolArg("-capturemessages", false)) {
CaptureMessage(pnode->addr, msg.m_type, msg.data, /* incoming */ false);
}
+ TRACE6(net, outbound_message,
+ pnode->GetId(),
+ pnode->GetAddrName().c_str(),
+ pnode->ConnectionTypeAsString().c_str(),
+ msg.m_type.c_str(),
+ msg.data.size(),
+ msg.data.data()
+ );
+
// make sure we use the appropriate network transport format
std::vector<unsigned char> serializedHeader;
pnode->m_serializer->prepareForTransport(msg, serializedHeader);
diff --git a/src/net_processing.cpp b/src/net_processing.cpp
index 70eac468f3..dc36b69802 100644
--- a/src/net_processing.cpp
+++ b/src/net_processing.cpp
@@ -34,6 +34,7 @@
#include <util/check.h> // For NDEBUG compile time check
#include <util/strencodings.h>
#include <util/system.h>
+#include <util/trace.h>
#include <validation.h>
#include <algorithm>
@@ -4052,6 +4053,15 @@ bool PeerManagerImpl::ProcessMessages(CNode* pfrom, std::atomic<bool>& interrupt
}
CNetMessage& msg(msgs.front());
+ TRACE6(net, inbound_message,
+ pfrom->GetId(),
+ pfrom->GetAddrName().c_str(),
+ pfrom->ConnectionTypeAsString().c_str(),
+ msg.m_command.c_str(),
+ msg.m_recv.size(),
+ msg.m_recv.data()
+ );
+
if (gArgs.GetBoolArg("-capturemessages", false)) {
CaptureMessage(pfrom->addr, msg.m_command, MakeUCharSpan(msg.m_recv), /* incoming */ true);
}