From 87cfcfd3741e0cd38da671db79b199fe5bfb2949 Mon Sep 17 00:00:00 2001 From: Satoshi Nakamoto Date: Sat, 28 Aug 2010 00:54:37 +0000 Subject: [PATCH] more rpc methods allowed in safe mode --- rpc.cpp | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/rpc.cpp b/rpc.cpp index a1151e59f..a4297ad6b 100644 --- a/rpc.cpp +++ b/rpc.cpp @@ -669,6 +669,25 @@ pair pCallTable[] = }; map mapCallTable(pCallTable, pCallTable + sizeof(pCallTable)/sizeof(pCallTable[0])); +string pAllowInSafeMode[] = +{ + "help", + "stop", + "getblockcount", + "getblocknumber", + "getconnectioncount", + "getdifficulty", + "getgenerate", + "setgenerate", + "gethashespersec", + "getinfo", + "getnewaddress", + "setlabel", + "getlabel", + "getaddressesbylabel", +}; +set setAllowInSafeMode(pAllowInSafeMode, pAllowInSafeMode + sizeof(pAllowInSafeMode)/sizeof(pAllowInSafeMode[0])); + @@ -974,9 +993,9 @@ void ThreadRPCServer2(void* parg) printf("ThreadRPCServer method=%s\n", strMethod.c_str()); - // Observe lockdown + // Observe safe mode string strWarning = GetWarnings("rpc"); - if (strWarning != "" && !mapArgs.count("-overridesafety") && strMethod != "getinfo" && strMethod != "help" && strMethod != "stop" && strMethod != "getgenerate" && strMethod != "setgenerate") + if (strWarning != "" && !mapArgs.count("-overridesafety") && !setAllowInSafeMode.count(strMethod)) throw runtime_error(strWarning); // Execute