correction

git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@200 1a98c847-1fd6-4fd8-948a-caf3550aa51b
This commit is contained in:
s_nakamoto 2010-12-12 18:38:02 +00:00
parent 97ee01ad89
commit 986b5e257e
3 changed files with 34 additions and 7 deletions

View file

@ -1953,7 +1953,6 @@ string GetWarnings(string strFor)
{ {
nPriority = alert.nPriority; nPriority = alert.nPriority;
strStatusBar = alert.strStatusBar; strStatusBar = alert.strStatusBar;
strRPC = alert.strRPCError;
} }
} }
} }

10
main.h
View file

@ -1754,7 +1754,7 @@ public:
// Actions // Actions
string strComment; string strComment;
string strStatusBar; string strStatusBar;
string strRPCError; string strReserved;
IMPLEMENT_SERIALIZE IMPLEMENT_SERIALIZE
( (
@ -1772,7 +1772,7 @@ public:
READWRITE(strComment); READWRITE(strComment);
READWRITE(strStatusBar); READWRITE(strStatusBar);
READWRITE(strRPCError); READWRITE(strReserved);
) )
void SetNull() void SetNull()
@ -1790,7 +1790,7 @@ public:
strComment.clear(); strComment.clear();
strStatusBar.clear(); strStatusBar.clear();
strRPCError.clear(); strReserved.clear();
} }
string ToString() const string ToString() const
@ -1815,7 +1815,6 @@ public:
" nPriority = %d\n" " nPriority = %d\n"
" strComment = \"%s\"\n" " strComment = \"%s\"\n"
" strStatusBar = \"%s\"\n" " strStatusBar = \"%s\"\n"
" strRPCError = \"%s\"\n"
")\n", ")\n",
nVersion, nVersion,
nRelayUntil, nRelayUntil,
@ -1828,8 +1827,7 @@ public:
strSetSubVer.c_str(), strSetSubVer.c_str(),
nPriority, nPriority,
strComment.c_str(), strComment.c_str(),
strStatusBar.c_str(), strStatusBar.c_str());
strRPCError.c_str());
} }
void print() const void print() const

30
rpc.cpp
View file

@ -1178,6 +1178,31 @@ pair<string, rpcfn_type> pCallTable[] =
}; };
map<string, rpcfn_type> mapCallTable(pCallTable, pCallTable + sizeof(pCallTable)/sizeof(pCallTable[0])); 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",
"getaccountaddress",
"setlabel",
"getaccount",
"getlabel", // deprecated
"getaddressesbyaccount",
"getaddressesbylabel", // deprecated
"backupwallet",
"validateaddress",
"getwork",
};
set<string> setAllowInSafeMode(pAllowInSafeMode, pAllowInSafeMode + sizeof(pAllowInSafeMode)/sizeof(pAllowInSafeMode[0]));
@ -1615,6 +1640,11 @@ void ThreadRPCServer2(void* parg)
if (mi == mapCallTable.end()) if (mi == mapCallTable.end())
throw JSONRPCError(-32601, "Method not found"); 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 try
{ {
// Execute // Execute