changeset 250:8c9f73243ec7 draft

more rpc methods allowed in safe mode
author Satoshi Nakamoto <satoshin@gmx.com>
date Sat, 28 Aug 2010 00:54:37 +0000
parents cb4f9fbb1863
children e07f6a800185
files rpc.cpp
diffstat 1 files changed, 21 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/rpc.cpp
+++ b/rpc.cpp
@@ -669,6 +669,25 @@
 };
 map<string, rpcfn_type> 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<string> setAllowInSafeMode(pAllowInSafeMode, pAllowInSafeMode + sizeof(pAllowInSafeMode)/sizeof(pAllowInSafeMode[0]));
+
 
 
 
@@ -974,9 +993,9 @@
 
                 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