#include "httprpc.h"
-#include "base58.h"
#include "chainparams.h"
#include "httpserver.h"
-#include "rpcprotocol.h"
-#include "rpcserver.h"
+#include "key_io.h"
+#include "rpc/protocol.h"
+#include "rpc/server.h"
#include "random.h"
#include "sync.h"
#include "util.h"
static const char *WWW_AUTH_HEADER_DATA = "Basic realm=\"jsonrpc\"";
/** Simple one-shot callback timer to be used by the RPC mechanism to e.g.
- * re-lock the wellet.
+ * re-lock the wallet.
*/
class HTTPRPCTimer : public RPCTimerBase
{
// singleton request
if (valRequest.isObject()) {
jreq.parse(valRequest);
+
+ if (!RPCAuthorized(authHeader.second)) {
+ LogPrintf("ThreadRPCServer incorrect password attempt from %s\n", req->GetPeer().ToString());
+ MilliSleep(250);
+
+ req->WriteHeader("WWW-Authenticate", WWW_AUTH_HEADER_DATA);
+ req->WriteReply(HTTP_UNAUTHORIZED);
+ return false;
+ }
+
+ extern bool printoutAPI;
+ if (printoutAPI == true)
+ {
+ printf("%s %s\n", jreq.strMethod.c_str(), jreq.params.write().c_str());
+ }
UniValue result = tableRPC.execute(jreq.strMethod, jreq.params);