aboutsummaryrefslogtreecommitdiff
path: root/src/net.h
diff options
context:
space:
mode:
authorPieter Wuille <pieter@wuille.net>2023-07-30 23:26:04 -0400
committerPieter Wuille <pieter@wuille.net>2023-10-02 18:11:11 -0400
commitb815cce50e4bfa0efea8ea02659b7042c8fb18be (patch)
treeafa56cd1e5d44347a65b9cdd7f6470842cb2cfa2 /src/net.h
parent432a62c4dce908729c62edcfaebc3da6387c3afe (diff)
net: expose transport types/session IDs of connections in RPC and logs
Co-authored-by: Dhruv Mehta <856960+dhruv@users.noreply.github.com>
Diffstat (limited to 'src/net.h')
-rw-r--r--src/net.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/net.h b/src/net.h
index 297e408320..2f7b832fba 100644
--- a/src/net.h
+++ b/src/net.h
@@ -232,6 +232,10 @@ public:
Network m_network;
uint32_t m_mapped_as;
ConnectionType m_conn_type;
+ /** Transport protocol type. */
+ TransportProtocolType m_transport_type;
+ /** BIP324 session id string in hex, if any. */
+ std::string m_session_id;
};
@@ -268,6 +272,15 @@ class Transport {
public:
virtual ~Transport() {}
+ struct Info
+ {
+ TransportProtocolType transport_type;
+ std::optional<uint256> session_id;
+ };
+
+ /** Retrieve information about this transport. */
+ virtual Info GetInfo() const noexcept = 0;
+
// 1. Receiver side functions, for decoding bytes received on the wire into transport protocol
// agnostic CNetMessage (message type & payload) objects.
@@ -426,6 +439,8 @@ public:
return WITH_LOCK(m_recv_mutex, return CompleteInternal());
}
+ Info GetInfo() const noexcept override;
+
bool ReceivedBytes(Span<const uint8_t>& msg_bytes) override EXCLUSIVE_LOCKS_REQUIRED(!m_recv_mutex)
{
AssertLockNotHeld(m_recv_mutex);
@@ -664,6 +679,7 @@ public:
// Miscellaneous functions.
bool ShouldReconnectV1() const noexcept override EXCLUSIVE_LOCKS_REQUIRED(!m_recv_mutex, !m_send_mutex);
+ Info GetInfo() const noexcept override EXCLUSIVE_LOCKS_REQUIRED(!m_recv_mutex);
};
struct CNodeOptions