From 986b5e257e2bb9d7aaed5111ca335732f8808b2d Mon Sep 17 00:00:00 2001 From: s_nakamoto Date: Sun, 12 Dec 2010 18:38:02 +0000 Subject: correction git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@200 1a98c847-1fd6-4fd8-948a-caf3550aa51b --- rpc.cpp | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'rpc.cpp') diff --git a/rpc.cpp b/rpc.cpp index 49e87e56a..b9ed61de7 100644 --- a/rpc.cpp +++ b/rpc.cpp @@ -1178,6 +1178,31 @@ pair pCallTable[] = }; map mapCallTable(pCallTable, pCallTable + sizeof(pCallTable)/sizeof(pCallTable[0])); +string pAllowInSafeMode[] = +{ + "help", + "stop", + "getblockcount", + "getblocknumber", + "getconnectioncount", + "getdifficulty", + "getgenerate", + "setgenerate", + "gethashespersec", + "getinfo", + "getnewaddress", + "getaccountaddress", + "setlabel", + "getaccount", + "getlabel", // deprecated + "getaddressesbyaccount", + "getaddressesbylabel", // deprecated + "backupwallet", + "validateaddress", + "getwork", +}; +set setAllowInSafeMode(pAllowInSafeMode, pAllowInSafeMode + sizeof(pAllowInSafeMode)/sizeof(pAllowInSafeMode[0])); + @@ -1615,6 +1640,11 @@ void ThreadRPCServer2(void* parg) if (mi == mapCallTable.end()) throw JSONRPCError(-32601, "Method not found"); + // Observe safe mode + string strWarning = GetWarnings("rpc"); + if (strWarning != "" && !GetBoolArg("-disablesafemode") && !setAllowInSafeMode.count(strMethod)) + throw JSONRPCError(-2, string("Safe mode: ") + strWarning); + try { // Execute -- cgit v1.2.3