From d5b28c30a9a22275989d6e080a2cbe5299f70fdc Mon Sep 17 00:00:00 2001 From: rakshasa Date: Sat, 29 Mar 2025 07:46:22 +0100 Subject: [PATCH] Added default switch cases to RpcManager. --- src/rpc/rpc_manager.cc | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/rpc/rpc_manager.cc b/src/rpc/rpc_manager.cc index 5409a4f3..13a13d6a 100644 --- a/src/rpc/rpc_manager.cc +++ b/src/rpc/rpc_manager.cc @@ -99,22 +99,26 @@ RpcManager::object_to_target(const torrent::Object& obj, int call_flags, rpc::ta bool RpcManager::process(RPCType type, const char* in_buffer, uint32_t length, slot_response_callback callback) { switch (type) { - case RPCType::XML: { + case RPCType::XML: if (m_xmlrpc.is_valid() && rpc::call_command_value("network.rpc.use_xmlrpc")) { return m_xmlrpc.process(in_buffer, length, callback); } else { const std::string response = "faultCode-501faultStringXML-RPC not supported"; return callback(response.c_str(), response.size()); } - } - case RPCType::JSON: { + break; + + case RPCType::JSON: if (rpc::call_command_value("network.rpc.use_jsonrpc")) { return m_jsonrpc.process(in_buffer, length, callback); } else { const std::string response = "{\"jsonrpc\":\"2.0\",\"error\":{\"code\":-32601,\"message\":\"JSON-RPC not supported\"},\"id\":null}"; return callback(response.c_str(), response.size()); } - } + break; + + default: + throw torrent::input_error("invalid parameters: unknown RPC type"); } } @@ -139,6 +143,8 @@ RpcManager::is_type_enabled(RPCType type) const { return m_is_xmlrpc_enabled; case RPCType::JSON: return m_is_jsonrpc_enabled; + default: + throw torrent::input_error("invalid parameters: unknown RPC type"); } } @@ -147,8 +153,12 @@ RpcManager::set_type_enabled(RPCType type, bool enabled) { switch (type) { case RPCType::XML: m_is_xmlrpc_enabled = enabled; + break; case RPCType::JSON: m_is_jsonrpc_enabled = enabled; + break; + default: + throw torrent::input_error("invalid parameters: unknown RPC type"); } }