rpc: hide ZMQ request contents in restricted mode

This commit is contained in:
selsta
2026-07-25 14:16:12 +02:00
parent 8472d8c503
commit 4ee81cfb73
5 changed files with 11 additions and 6 deletions
+1 -1
View File
@@ -92,7 +92,7 @@ struct zmq_internals
{ {
explicit zmq_internals(t_core& core, t_p2p& p2p, const bool restricted) explicit zmq_internals(t_core& core, t_p2p& p2p, const bool restricted)
: rpc_handler{core.get(), p2p.get(), restricted} : rpc_handler{core.get(), p2p.get(), restricted}
, server{rpc_handler} , server{rpc_handler, restricted}
{} {}
cryptonote::rpc::DaemonHandler rpc_handler; cryptonote::rpc::DaemonHandler rpc_handler;
+6 -2
View File
@@ -99,8 +99,9 @@ namespace
namespace rpc namespace rpc
{ {
ZmqServer::ZmqServer(RpcHandler& h) : ZmqServer::ZmqServer(RpcHandler& h, const bool restricted) :
handler(h), handler(h),
restricted(restricted),
context(zmq_init(num_zmq_threads)), context(zmq_init(num_zmq_threads)),
rep_socket(nullptr), rep_socket(nullptr),
pub_socket(nullptr), pub_socket(nullptr),
@@ -174,7 +175,10 @@ void ZmqServer::serve()
} }
else // no errors else // no errors
{ {
MDEBUG("Received RPC request: \"" << *message << "\""); if (restricted)
MDEBUG("Received RPC request");
else
MDEBUG("Received RPC request: \"" << *message << "\"");
epee::byte_slice response = handler.handle(std::move(*message)); epee::byte_slice response = handler.handle(std::move(*message));
const boost::string_ref response_view{reinterpret_cast<const char*>(response.data()), response.size()}; const boost::string_ref response_view{reinterpret_cast<const char*>(response.data()), response.size()};
+2 -1
View File
@@ -51,7 +51,7 @@ class ZmqServer final
{ {
public: public:
ZmqServer(RpcHandler& h); ZmqServer(RpcHandler& h, bool restricted);
~ZmqServer(); ~ZmqServer();
@@ -68,6 +68,7 @@ class ZmqServer final
private: private:
RpcHandler& handler; RpcHandler& handler;
const bool restricted;
net::zmq::context context; net::zmq::context context;
+1 -1
View File
@@ -242,7 +242,7 @@ bool mock_daemon::run_main()
{ {
CHECK_AND_ASSERT_THROW_MES(m_rpc_server.run(2, false), "Failed to start RPC"); CHECK_AND_ASSERT_THROW_MES(m_rpc_server.run(2, false), "Failed to start RPC");
cryptonote::rpc::DaemonHandler rpc_daemon_handler(*m_core, m_server); cryptonote::rpc::DaemonHandler rpc_daemon_handler(*m_core, m_server);
cryptonote::rpc::ZmqServer zmq_server(rpc_daemon_handler); cryptonote::rpc::ZmqServer zmq_server(rpc_daemon_handler, false);
if (m_start_zmq) if (m_start_zmq)
{ {
+1 -1
View File
@@ -368,7 +368,7 @@ namespace
zmq_server() zmq_server()
: zmq_base(), : zmq_base(),
handler(), handler(),
server(handler), server(handler, false),
pub(), pub(),
sub() sub()
{ {