Browse Source

Merge remote branch 'refs/remotes/svn/trunk' into svn

miguelfreitas
Gavin Andresen 14 years ago
parent
commit
2ea321d85a
  1. 9
      db.cpp
  2. 1
      db.h
  3. 1
      headers.h
  4. 2
      main.cpp
  5. 25
      rpc.cpp
  6. 2
      serialize.h
  7. 6
      setup.nsi

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

@ -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);

1
headers.h

@ -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>

2
main.cpp

@ -2987,7 +2987,7 @@ void BitcoinMiner()
txNew.vin.resize(1); txNew.vin.resize(1);
txNew.vin[0].prevout.SetNull(); txNew.vin[0].prevout.SetNull();
int64 nNow = max(pindexPrev->GetMedianTimePast()+1, GetAdjustedTime()); int64 nNow = max(pindexPrev->GetMedianTimePast()+1, GetAdjustedTime());
if (nNow > nPrevTime+1 && ++nExtraNonce >= 0x7f) if (++nExtraNonce >= 0x7f && nNow > nPrevTime+1)
{ {
nExtraNonce = 1; nExtraNonce = 1;
nPrevTime = nNow; nPrevTime = nNow;

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());
} }

2
serialize.h

@ -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 = 31306; static const int VERSION = 31401;
static const char* pszSubVer = ""; static const char* pszSubVer = "";

6
setup.nsi

@ -7,7 +7,7 @@ RequestExecutionLevel highest
# General Symbol Definitions # General Symbol Definitions
!define REGKEY "SOFTWARE\$(^Name)" !define REGKEY "SOFTWARE\$(^Name)"
!define VERSION 0.3.13 !define VERSION 0.3.14
!define COMPANY "Bitcoin project" !define COMPANY "Bitcoin project"
!define URL http://www.bitcoin.org/ !define URL http://www.bitcoin.org/
@ -42,12 +42,12 @@ Var StartMenuGroup
!insertmacro MUI_LANGUAGE English !insertmacro MUI_LANGUAGE English
# Installer attributes # Installer attributes
OutFile bitcoin-0.3.13-win32-setup.exe OutFile bitcoin-0.3.14-win32-setup.exe
InstallDir $PROGRAMFILES\Bitcoin InstallDir $PROGRAMFILES\Bitcoin
CRCCheck on CRCCheck on
XPStyle on XPStyle on
ShowInstDetails show ShowInstDetails show
VIProductVersion 0.3.13.0 VIProductVersion 0.3.14.0
VIAddVersionKey ProductName Bitcoin VIAddVersionKey ProductName Bitcoin
VIAddVersionKey ProductVersion "${VERSION}" VIAddVersionKey ProductVersion "${VERSION}"
VIAddVersionKey CompanyName "${COMPANY}" VIAddVersionKey CompanyName "${COMPANY}"

Loading…
Cancel
Save