mirror of
https://github.com/kvazar-network/kevacoin.git
synced 2025-01-11 07:37:54 +00:00
testnet and keypoololdest added to RPC getinfo output. And RPC now sends proper HTTP Date headers.
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@172 1a98c847-1fd6-4fd8-948a-caf3550aa51b
This commit is contained in:
parent
2ce73dbe85
commit
c285051c08
9
db.cpp
9
db.cpp
@ -908,3 +908,12 @@ vector<unsigned char> CWalletDB::GetKeyFromKeyPool()
|
|||||||
KeepKey(nIndex);
|
KeepKey(nIndex);
|
||||||
return keypool.vchPubKey;
|
return keypool.vchPubKey;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int64 CWalletDB::GetOldestKeyPoolTime()
|
||||||
|
{
|
||||||
|
int64 nIndex = 0;
|
||||||
|
CKeyPool keypool;
|
||||||
|
ReserveKeyFromKeyPool(nIndex, keypool);
|
||||||
|
ReturnKey(nIndex);
|
||||||
|
return keypool.nTime;
|
||||||
|
}
|
||||||
|
1
db.h
1
db.h
@ -432,6 +432,7 @@ protected:
|
|||||||
friend class CReserveKey;
|
friend class CReserveKey;
|
||||||
public:
|
public:
|
||||||
vector<unsigned char> GetKeyFromKeyPool();
|
vector<unsigned char> GetKeyFromKeyPool();
|
||||||
|
int64 GetOldestKeyPoolTime();
|
||||||
};
|
};
|
||||||
|
|
||||||
bool LoadWallet(bool& fFirstRunRet);
|
bool LoadWallet(bool& fFirstRunRet);
|
||||||
|
@ -43,6 +43,7 @@
|
|||||||
#include <db_cxx.h>
|
#include <db_cxx.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <time.h>
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#include <float.h>
|
#include <float.h>
|
||||||
|
25
rpc.cpp
25
rpc.cpp
@ -261,6 +261,8 @@ Value getinfo(const Array& params, bool fHelp)
|
|||||||
obj.push_back(Pair("genproclimit", (int)(fLimitProcessors ? nLimitProcessors : -1)));
|
obj.push_back(Pair("genproclimit", (int)(fLimitProcessors ? nLimitProcessors : -1)));
|
||||||
obj.push_back(Pair("difficulty", (double)GetDifficulty()));
|
obj.push_back(Pair("difficulty", (double)GetDifficulty()));
|
||||||
obj.push_back(Pair("hashespersec", gethashespersec(params, false)));
|
obj.push_back(Pair("hashespersec", gethashespersec(params, false)));
|
||||||
|
obj.push_back(Pair("testnet", fTestNet));
|
||||||
|
obj.push_back(Pair("keypoololdest", (boost::int64_t)CWalletDB().GetOldestKeyPoolTime()));
|
||||||
obj.push_back(Pair("errors", GetWarnings("statusbar")));
|
obj.push_back(Pair("errors", GetWarnings("statusbar")));
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
@ -767,12 +769,22 @@ string HTTPPost(const string& strMsg, const map<string,string>& mapRequestHeader
|
|||||||
return s.str();
|
return s.str();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
string rfc1123Time()
|
||||||
|
{
|
||||||
|
char buffer[32];
|
||||||
|
time_t now;
|
||||||
|
time(&now);
|
||||||
|
struct tm* now_gmt = gmtime(&now);
|
||||||
|
strftime(buffer, sizeof(buffer), "%a, %d %b %Y %H:%M:%S %Z", now_gmt);
|
||||||
|
return string(buffer);
|
||||||
|
}
|
||||||
|
|
||||||
string HTTPReply(int nStatus, const string& strMsg)
|
string HTTPReply(int nStatus, const string& strMsg)
|
||||||
{
|
{
|
||||||
if (nStatus == 401)
|
if (nStatus == 401)
|
||||||
return "HTTP/1.0 401 Authorization Required\r\n"
|
return strprintf("HTTP/1.0 401 Authorization Required\r\n"
|
||||||
"Server: HTTPd/1.0\r\n"
|
"Date: %s\r\n"
|
||||||
"Date: Sat, 08 Jul 2006 12:04:08 GMT\r\n"
|
"Server: bitcoin-json-rpc\r\n"
|
||||||
"WWW-Authenticate: Basic realm=\"jsonrpc\"\r\n"
|
"WWW-Authenticate: Basic realm=\"jsonrpc\"\r\n"
|
||||||
"Content-Type: text/html\r\n"
|
"Content-Type: text/html\r\n"
|
||||||
"Content-Length: 311\r\n"
|
"Content-Length: 311\r\n"
|
||||||
@ -785,7 +797,7 @@ string HTTPReply(int nStatus, const string& strMsg)
|
|||||||
"<META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=ISO-8859-1'>\r\n"
|
"<META HTTP-EQUIV='Content-Type' CONTENT='text/html; charset=ISO-8859-1'>\r\n"
|
||||||
"</HEAD>\r\n"
|
"</HEAD>\r\n"
|
||||||
"<BODY><H1>401 Unauthorized.</H1></BODY>\r\n"
|
"<BODY><H1>401 Unauthorized.</H1></BODY>\r\n"
|
||||||
"</HTML>\r\n";
|
"</HTML>\r\n", rfc1123Time().c_str());
|
||||||
string strStatus;
|
string strStatus;
|
||||||
if (nStatus == 200) strStatus = "OK";
|
if (nStatus == 200) strStatus = "OK";
|
||||||
else if (nStatus == 400) strStatus = "Bad Request";
|
else if (nStatus == 400) strStatus = "Bad Request";
|
||||||
@ -793,15 +805,16 @@ string HTTPReply(int nStatus, const string& strMsg)
|
|||||||
else if (nStatus == 500) strStatus = "Internal Server Error";
|
else if (nStatus == 500) strStatus = "Internal Server Error";
|
||||||
return strprintf(
|
return strprintf(
|
||||||
"HTTP/1.1 %d %s\r\n"
|
"HTTP/1.1 %d %s\r\n"
|
||||||
|
"Date: %s\r\n"
|
||||||
"Connection: close\r\n"
|
"Connection: close\r\n"
|
||||||
"Content-Length: %d\r\n"
|
"Content-Length: %d\r\n"
|
||||||
"Content-Type: application/json\r\n"
|
"Content-Type: application/json\r\n"
|
||||||
"Date: Sat, 08 Jul 2006 12:04:08 GMT\r\n"
|
"Server: bitcoin-json-rpc/1.0\r\n"
|
||||||
"Server: json-rpc/1.0\r\n"
|
|
||||||
"\r\n"
|
"\r\n"
|
||||||
"%s",
|
"%s",
|
||||||
nStatus,
|
nStatus,
|
||||||
strStatus.c_str(),
|
strStatus.c_str(),
|
||||||
|
rfc1123Time().c_str(),
|
||||||
strMsg.size(),
|
strMsg.size(),
|
||||||
strMsg.c_str());
|
strMsg.c_str());
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ class CDataStream;
|
|||||||
class CAutoFile;
|
class CAutoFile;
|
||||||
static const unsigned int MAX_SIZE = 0x02000000;
|
static const unsigned int MAX_SIZE = 0x02000000;
|
||||||
|
|
||||||
static const int VERSION = 31400;
|
static const int VERSION = 31401;
|
||||||
static const char* pszSubVer = "";
|
static const char* pszSubVer = "";
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user