mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-02-16 10:29:00 +00:00
Merge branch '0.5.x' into 0.6.0.x
Conflicts: src/key.h src/keystore.h src/net.h src/protocol.cpp src/qt/guiutil.h src/test/DoS_tests.cpp
This commit is contained in:
commit
cafa8f2879
@ -22,8 +22,8 @@ bool Function(char* psz, int n)
|
||||
- No extra spaces inside parenthesis; please don't do ( this )
|
||||
- No space after function names, one space after if, for and while
|
||||
|
||||
Variable names begin with the type in lowercase, like nSomeVariable.
|
||||
Please don't put the first word of the variable name in lowercase like
|
||||
Variable names begin with the type in lower-case, like nSomeVariable.
|
||||
Please don't put the first word of the variable name in lower-case like
|
||||
someVariable.
|
||||
|
||||
Common types:
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
// could be used to create visually identical looking account numbers.
|
||||
// - A string with non-alphanumeric characters is not as easily accepted as an account number.
|
||||
// - E-mail usually won't line-break if there's no punctuation to break at.
|
||||
// - Doubleclicking selects the whole number as one word if it's all alphanumeric.
|
||||
// - Double-clicking selects the whole number as one word if it's all alphanumeric.
|
||||
//
|
||||
#ifndef BITCOIN_BASE58_H
|
||||
#define BITCOIN_BASE58_H
|
||||
|
||||
@ -1844,7 +1844,7 @@ Value getwork(const Array& params, bool fHelp)
|
||||
// Save
|
||||
mapNewBlock[pblock->hashMerkleRoot] = make_pair(pblock, pblock->vtx[0].vin[0].scriptSig);
|
||||
|
||||
// Prebuild hash buffers
|
||||
// Pre-build hash buffers
|
||||
char pmidstate[32];
|
||||
char pdata[128];
|
||||
char phash1[64];
|
||||
@ -2146,7 +2146,7 @@ string rfc1123Time()
|
||||
time(&now);
|
||||
struct tm* now_gmt = gmtime(&now);
|
||||
string locale(setlocale(LC_TIME, NULL));
|
||||
setlocale(LC_TIME, "C"); // we want posix (aka "C") weekday/month strings
|
||||
setlocale(LC_TIME, "C"); // we want POSIX (aka "C") weekday/month strings
|
||||
strftime(buffer, sizeof(buffer), "%a, %d %b %Y %H:%M:%S +0000", now_gmt);
|
||||
setlocale(LC_TIME, locale.c_str());
|
||||
return string(buffer);
|
||||
@ -2442,7 +2442,7 @@ void ThreadRPCServer2(void* parg)
|
||||
}
|
||||
catch(boost::system::system_error &e)
|
||||
{
|
||||
ThreadSafeMessageBox(strprintf(_("An error occured while setting up the RPC port %i for listening: %s"), endpoint.port(), e.what()),
|
||||
ThreadSafeMessageBox(strprintf(_("An error occurred while setting up the RPC port %i for listening: %s"), endpoint.port(), e.what()),
|
||||
_("Error"), wxOK | wxMODAL);
|
||||
StartShutdown();
|
||||
return;
|
||||
@ -2803,7 +2803,7 @@ int CommandLineRPC(int argc, char *argv[])
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
#ifdef _MSC_VER
|
||||
// Turn off microsoft heap dump noise
|
||||
// Turn off Microsoft heap dump noise
|
||||
_CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
|
||||
_CrtSetReportFile(_CRT_WARN, CreateFile("NUL", GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 0));
|
||||
#endif
|
||||
|
||||
@ -20,7 +20,7 @@ bool CCrypter::SetKeyFromPassphrase(const SecureString& strKeyData, const std::v
|
||||
if (nRounds < 1 || chSalt.size() != WALLET_CRYPTO_SALT_SIZE)
|
||||
return false;
|
||||
|
||||
// Try to keep the keydata out of swap (and be a bit over-careful to keep the IV that we don't even use out of swap)
|
||||
// Try to keep the key data out of swap (and be a bit over-careful to keep the IV that we don't even use out of swap)
|
||||
// Note that this does nothing about suspend-to-disk (which will put all our key data on disk)
|
||||
// Note as well that at no point in this program is any attempt made to prevent stealing of keys by reading the memory of the running process.
|
||||
mlock(&chKey[0], sizeof chKey);
|
||||
@ -47,7 +47,7 @@ bool CCrypter::SetKey(const CKeyingMaterial& chNewKey, const std::vector<unsigne
|
||||
if (chNewKey.size() != WALLET_CRYPTO_KEY_SIZE || chNewIV.size() != WALLET_CRYPTO_KEY_SIZE)
|
||||
return false;
|
||||
|
||||
// Try to keep the keydata out of swap
|
||||
// Try to keep the key data out of swap
|
||||
// Note that this does nothing about suspend-to-disk (which will put all our key data on disk)
|
||||
// Note as well that at no point in this program is any attempt made to prevent stealing of keys by reading the memory of the running process.
|
||||
mlock(&chKey[0], sizeof chKey);
|
||||
|
||||
@ -79,7 +79,7 @@ void Shutdown(void* parg)
|
||||
printf("Bitcoin exiting\n\n");
|
||||
fExit = true;
|
||||
#ifndef QT_GUI
|
||||
// ensure non UI client get's exited here, but let Bitcoin-Qt reach return 0; in bitcoin.cpp
|
||||
// ensure non-UI client get's exited here, but let Bitcoin-Qt reach return 0; in bitcoin.cpp
|
||||
exit(0);
|
||||
#endif
|
||||
}
|
||||
@ -139,12 +139,12 @@ bool AppInit(int argc, char* argv[])
|
||||
bool AppInit2(int argc, char* argv[])
|
||||
{
|
||||
#ifdef _MSC_VER
|
||||
// Turn off microsoft heap dump noise
|
||||
// Turn off Microsoft heap dump noise
|
||||
_CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE);
|
||||
_CrtSetReportFile(_CRT_WARN, CreateFileA("NUL", GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 0));
|
||||
#endif
|
||||
#if _MSC_VER >= 1400
|
||||
// Disable confusing "helpful" text message on abort, ctrl-c
|
||||
// Disable confusing "helpful" text message on abort, Ctrl-C
|
||||
_set_abort_behavior(0, _WRITE_ABORT_MSG | _CALL_REPORTFAULT);
|
||||
#endif
|
||||
#ifndef WIN32
|
||||
|
||||
@ -206,7 +206,7 @@ void ThreadIRCSeed(void* parg)
|
||||
|
||||
void ThreadIRCSeed2(void* parg)
|
||||
{
|
||||
/* Dont advertise on IRC if we don't allow incoming connections */
|
||||
/* Don't advertise on IRC if we don't allow incoming connections */
|
||||
if (mapArgs.count("-connect") || fNoListen)
|
||||
return;
|
||||
|
||||
|
||||
@ -44,7 +44,7 @@ err:
|
||||
|
||||
// Perform ECDSA key recovery (see SEC1 4.1.6) for curves over (mod p)-fields
|
||||
// recid selects which key is recovered
|
||||
// if check is nonzero, additional checks are performed
|
||||
// if check is non-zero, additional checks are performed
|
||||
int ECDSA_SIG_recover_key_GFp(EC_KEY *eckey, ECDSA_SIG *ecsig, const unsigned char *msg, int msglen, int recid, int check)
|
||||
{
|
||||
if (!eckey) return 0;
|
||||
|
||||
26
src/main.cpp
26
src/main.cpp
@ -1001,7 +1001,7 @@ bool CTransaction::DisconnectInputs(CTxDB& txdb)
|
||||
// Remove transaction from index
|
||||
// This can fail if a duplicate of this transaction was in a chain that got
|
||||
// reorganized away. This is only possible if this transaction was completely
|
||||
// spent, so erasing it would be a no-op anway.
|
||||
// spent, so erasing it would be a no-op anyway.
|
||||
txdb.EraseTxIndex(*this);
|
||||
|
||||
return true;
|
||||
@ -1710,7 +1710,7 @@ bool CBlock::CheckBlock() const
|
||||
if (nSigOps > MAX_BLOCK_SIGOPS)
|
||||
return DoS(100, error("CheckBlock() : out-of-bounds SigOpCount"));
|
||||
|
||||
// Check merkleroot
|
||||
// Check merkle root
|
||||
if (hashMerkleRoot != BuildMerkleTree())
|
||||
return DoS(100, error("CheckBlock() : hashMerkleRoot mismatch"));
|
||||
|
||||
@ -1902,7 +1902,7 @@ FILE* AppendBlockFile(unsigned int& nFileRet)
|
||||
return NULL;
|
||||
if (fseek(file, 0, SEEK_END) != 0)
|
||||
return NULL;
|
||||
// FAT32 filesize max 4GB, fseek and ftell max 2GB, so we must stay under 2GB
|
||||
// FAT32 file size max 4GB, fseek and ftell max 2GB, so we must stay under 2GB
|
||||
if (ftell(file) < 0x7F000000 - MAX_SIZE)
|
||||
{
|
||||
nFileRet = nCurrentBlockFile;
|
||||
@ -1996,7 +1996,7 @@ bool LoadBlockIndex(bool fAllowNew)
|
||||
|
||||
void PrintBlockTree()
|
||||
{
|
||||
// precompute tree structure
|
||||
// pre-compute tree structure
|
||||
map<CBlockIndex*, vector<CBlockIndex*> > mapNext;
|
||||
for (map<uint256, CBlockIndex*>::iterator mi = mapBlockIndex.begin(); mi != mapBlockIndex.end(); ++mi)
|
||||
{
|
||||
@ -2049,7 +2049,7 @@ void PrintBlockTree()
|
||||
|
||||
PrintWallets(block);
|
||||
|
||||
// put the main timechain first
|
||||
// put the main time-chain first
|
||||
vector<CBlockIndex*>& vNext = mapNext[pindex];
|
||||
for (unsigned int i = 0; i < vNext.size(); i++)
|
||||
{
|
||||
@ -2213,7 +2213,7 @@ bool static AlreadyHave(CTxDB& txdb, const CInv& inv)
|
||||
|
||||
|
||||
// The message start string is designed to be unlikely to occur in normal data.
|
||||
// The characters are rarely used upper ascii, not valid as UTF-8, and produce
|
||||
// The characters are rarely used upper ASCII, not valid as UTF-8, and produce
|
||||
// a large 4-byte int at any alignment.
|
||||
unsigned char pchMessageStart[4] = { 0xf9, 0xbe, 0xb4, 0xd9 };
|
||||
|
||||
@ -2860,12 +2860,12 @@ bool ProcessMessages(CNode* pfrom)
|
||||
{
|
||||
if (strstr(e.what(), "end of data"))
|
||||
{
|
||||
// Allow exceptions from underlength message on vRecv
|
||||
// Allow exceptions from under-length message on vRecv
|
||||
printf("ProcessMessages(%s, %u bytes) : Exception '%s' caught, normally caused by a message being shorter than its stated length\n", strCommand.c_str(), nMessageSize, e.what());
|
||||
}
|
||||
else if (strstr(e.what(), "size too large"))
|
||||
{
|
||||
// Allow exceptions from overlong size
|
||||
// Allow exceptions from over-long size
|
||||
printf("ProcessMessages(%s, %u bytes) : Exception '%s' caught\n", strCommand.c_str(), nMessageSize, e.what());
|
||||
}
|
||||
else
|
||||
@ -3107,9 +3107,9 @@ unsigned int static ScanHash_CryptoPP(char* pmidstate, char* pdata, char* phash1
|
||||
unsigned int& nNonce = *(unsigned int*)(pdata + 12);
|
||||
for (;;)
|
||||
{
|
||||
// Crypto++ SHA-256
|
||||
// Crypto++ SHA256
|
||||
// Hash pdata using pmidstate as the starting state into
|
||||
// preformatted buffer phash1, then hash phash1 into phash
|
||||
// pre-formatted buffer phash1, then hash phash1 into phash
|
||||
nNonce++;
|
||||
SHA256Transform(phash1, pdata, pmidstate);
|
||||
SHA256Transform(phash, phash1, pSHA256InitState);
|
||||
@ -3346,7 +3346,7 @@ void IncrementExtraNonce(CBlock* pblock, CBlockIndex* pindexPrev, unsigned int&
|
||||
void FormatHashBuffers(CBlock* pblock, char* pmidstate, char* pdata, char* phash1)
|
||||
{
|
||||
//
|
||||
// Prebuild hash buffers
|
||||
// Pre-build hash buffers
|
||||
//
|
||||
struct
|
||||
{
|
||||
@ -3471,7 +3471,7 @@ void static BitcoinMiner(CWallet *pwallet)
|
||||
|
||||
|
||||
//
|
||||
// Prebuild hash buffers
|
||||
// Pre-build hash buffers
|
||||
//
|
||||
char pmidstatebuf[32+16]; char* pmidstate = alignup<16>(pmidstatebuf);
|
||||
char pdatabuf[128+16]; char* pdata = alignup<16>(pdatabuf);
|
||||
@ -3496,7 +3496,7 @@ void static BitcoinMiner(CWallet *pwallet)
|
||||
unsigned int nHashesDone = 0;
|
||||
unsigned int nNonceFound;
|
||||
|
||||
// Crypto++ SHA-256
|
||||
// Crypto++ SHA256
|
||||
nNonceFound = ScanHash_CryptoPP(pmidstate, pdata + 64, phash1,
|
||||
(char*)&hash, nHashesDone);
|
||||
|
||||
|
||||
10
src/net.cpp
10
src/net.cpp
@ -200,7 +200,7 @@ bool GetMyExternalIP(CNetAddr& ipRet)
|
||||
{
|
||||
// We should be phasing out our use of sites like these. If we need
|
||||
// replacements, we should ask for volunteers to put this simple
|
||||
// php file on their webserver that prints the client IP:
|
||||
// php file on their web server that prints the client IP:
|
||||
// <?php echo $_SERVER["REMOTE_ADDR"]; ?>
|
||||
if (nHost == 1)
|
||||
{
|
||||
@ -444,7 +444,7 @@ CNode* ConnectNode(CAddress addrConnect, int64 nTimeout)
|
||||
/// debug print
|
||||
printf("connected %s\n", addrConnect.ToString().c_str());
|
||||
|
||||
// Set to nonblocking
|
||||
// Set to non-blocking
|
||||
#ifdef WIN32
|
||||
u_long nOne = 1;
|
||||
if (ioctlsocket(hSocket, FIONBIO, &nOne) == SOCKET_ERROR)
|
||||
@ -1588,7 +1588,7 @@ bool BindListenPort(string& strError)
|
||||
#endif
|
||||
|
||||
#ifdef WIN32
|
||||
// Set to nonblocking, incoming connections will also inherit this
|
||||
// Set to non-blocking, incoming connections will also inherit this
|
||||
if (ioctlsocket(hListenSocket, FIONBIO, (u_long*)&nOne) == SOCKET_ERROR)
|
||||
#else
|
||||
if (fcntl(hListenSocket, F_SETFL, O_NONBLOCK) == SOCKET_ERROR)
|
||||
@ -1643,7 +1643,7 @@ void StartNode(void* parg)
|
||||
pnodeLocalHost = new CNode(INVALID_SOCKET, CAddress(CService("127.0.0.1", 0), nLocalServices));
|
||||
|
||||
#ifdef WIN32
|
||||
// Get local host ip
|
||||
// Get local host IP
|
||||
char pszHostName[1000] = "";
|
||||
if (gethostname(pszHostName, sizeof(pszHostName)) != SOCKET_ERROR)
|
||||
{
|
||||
@ -1657,7 +1657,7 @@ void StartNode(void* parg)
|
||||
}
|
||||
}
|
||||
#else
|
||||
// Get local host ip
|
||||
// Get local host IP
|
||||
struct ifaddrs* myaddrs;
|
||||
if (getifaddrs(&myaddrs) == 0)
|
||||
{
|
||||
|
||||
@ -134,7 +134,7 @@ protected:
|
||||
int nRefCount;
|
||||
|
||||
// Denial-of-service detection/prevention
|
||||
// Key is ip address, value is banned-until-time
|
||||
// Key is IP address, value is banned-until-time
|
||||
static std::map<CNetAddr, int64> setBanned;
|
||||
static CCriticalSection cs_setBanned;
|
||||
int nMisbehavior;
|
||||
|
||||
@ -427,7 +427,7 @@ bool CNetAddr::IsMulticast() const
|
||||
|
||||
bool CNetAddr::IsValid() const
|
||||
{
|
||||
// Clean up 3-byte shifted addresses caused by garbage in size field
|
||||
// Cleanup 3-byte shifted addresses caused by garbage in size field
|
||||
// of addr messages from versions before 0.2.9 checksum.
|
||||
// Two consecutive addr messages look like this:
|
||||
// header20 vectorlen3 addr26 addr26 addr26 header20 vectorlen3 addr26 addr26 addr26...
|
||||
|
||||
@ -178,7 +178,7 @@ void AskPassphraseDialog::accept()
|
||||
|
||||
void AskPassphraseDialog::textChanged()
|
||||
{
|
||||
// Validate input, set Ok button to enabled when accepable
|
||||
// Validate input, set Ok button to enabled when acceptable
|
||||
bool acceptable = false;
|
||||
switch(mode)
|
||||
{
|
||||
|
||||
@ -5,8 +5,8 @@
|
||||
|
||||
This is:
|
||||
- All numbers except for '0'
|
||||
- All uppercase letters except for 'I' and 'O'
|
||||
- All lowercase letters except for 'l'
|
||||
- All upper-case letters except for 'I' and 'O'
|
||||
- All lower-case letters except for 'l'
|
||||
|
||||
User friendly Base58 input can map
|
||||
- 'l' and 'I' to '1'
|
||||
|
||||
@ -40,7 +40,7 @@ signals:
|
||||
void textChanged();
|
||||
|
||||
protected:
|
||||
/** Intercept focus-in event and ',' keypresses */
|
||||
/** Intercept focus-in event and ',' key presses */
|
||||
bool eventFilter(QObject *object, QEvent *event);
|
||||
|
||||
private:
|
||||
|
||||
@ -157,7 +157,7 @@ BitcoinGUI::BitcoinGUI(QWidget *parent):
|
||||
// Clicking on a transaction on the overview page simply sends you to transaction history page
|
||||
connect(overviewPage, SIGNAL(transactionClicked(QModelIndex)), this, SLOT(gotoHistoryPage()));
|
||||
|
||||
// Doubleclicking on a transaction on the transaction history page shows details
|
||||
// Double-clicking on a transaction on the transaction history page shows details
|
||||
connect(transactionView, SIGNAL(doubleClicked(QModelIndex)), transactionView, SLOT(showDetails()));
|
||||
|
||||
gotoOverviewPage();
|
||||
@ -364,7 +364,7 @@ void BitcoinGUI::setWalletModel(WalletModel *walletModel)
|
||||
setEncryptionStatus(walletModel->getEncryptionStatus());
|
||||
connect(walletModel, SIGNAL(encryptionStatusChanged(int)), this, SLOT(setEncryptionStatus(int)));
|
||||
|
||||
// Balloon popup for new transaction
|
||||
// Balloon pop-up for new transaction
|
||||
connect(walletModel->getTransactionTableModel(), SIGNAL(rowsInserted(QModelIndex,int,int)),
|
||||
this, SLOT(incomingTransaction(QModelIndex,int,int)));
|
||||
|
||||
|
||||
@ -96,7 +96,7 @@ private:
|
||||
|
||||
/** Create the main UI actions. */
|
||||
void createActions();
|
||||
/** Create the menu bar and submenus. */
|
||||
/** Create the menu bar and sub-menus. */
|
||||
void createMenuBar();
|
||||
/** Create the toolbars */
|
||||
void createToolBars();
|
||||
@ -163,7 +163,7 @@ private slots:
|
||||
void backupWallet();
|
||||
/** Change encrypted wallet passphrase */
|
||||
void changePassphrase();
|
||||
/** Ask for pass phrase to unlock wallet temporarily */
|
||||
/** Ask for passphrase to unlock wallet temporarily */
|
||||
void unlockWallet();
|
||||
|
||||
/** Show window if hidden, unminimize when minimized */
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
#include <QAbstractListModel>
|
||||
|
||||
/** Bitcoin unit definitions. Encapsulates parsing and formatting
|
||||
and serves as list model for dropdown selection boxes.
|
||||
and serves as list model for drop-down selection boxes.
|
||||
*/
|
||||
class BitcoinUnits: public QAbstractListModel
|
||||
{
|
||||
@ -26,7 +26,7 @@ public:
|
||||
//! Unit conversion and formatting
|
||||
///@{
|
||||
|
||||
//! Get list of units, for dropdown box
|
||||
//! Get list of units, for drop-down box
|
||||
static QList<Unit> availableUnits();
|
||||
//! Is unit ID valid?
|
||||
static bool valid(int unit);
|
||||
@ -49,7 +49,7 @@ public:
|
||||
///@}
|
||||
|
||||
//! @name AbstractListModel implementation
|
||||
//! List model for unit dropdown selection box.
|
||||
//! List model for unit drop-down selection box.
|
||||
///@{
|
||||
enum RoleIndex {
|
||||
/** Unit identifier */
|
||||
|
||||
@ -101,7 +101,7 @@ bool GUIUtil::parseBitcoinURI(QString uri, SendCoinsRecipient *out)
|
||||
// Convert bitcoin:// to bitcoin:
|
||||
//
|
||||
// Cannot handle this later, because bitcoin:// will cause Qt to see the part after // as host,
|
||||
// which will lowercase it (and thus invalidate the address).
|
||||
// which will lower-case it (and thus invalidate the address).
|
||||
if(uri.startsWith("bitcoin://"))
|
||||
{
|
||||
uri.replace(0, 10, "bitcoin:");
|
||||
|
||||
@ -46,7 +46,7 @@ public:
|
||||
*/
|
||||
static void copyEntryData(QAbstractItemView *view, int column, int role=Qt::EditRole);
|
||||
|
||||
/** Get save file name, mimics QFileDialog::getSaveFileName, except that it appends a default suffix
|
||||
/** Get save filename, mimics QFileDialog::getSaveFileName, except that it appends a default suffix
|
||||
when no suffix is provided by the user.
|
||||
|
||||
@param[in] parent Parent window (or 0)
|
||||
|
||||
@ -82,7 +82,7 @@ public:
|
||||
|
||||
static int metaType();
|
||||
|
||||
// Image to variant that can be marshaled over DBus
|
||||
// Image to variant that can be marshalled over DBus
|
||||
static QVariant toVariant(const QImage &img);
|
||||
|
||||
private:
|
||||
@ -294,7 +294,7 @@ void Notificator::notify(Class cls, const QString &title, const QString &text, c
|
||||
default:
|
||||
if(cls == Critical)
|
||||
{
|
||||
// Fall back to old fashioned popup dialog if critical and no other notification available
|
||||
// Fall back to old fashioned pop-up dialog if critical and no other notification available
|
||||
QMessageBox::critical(parent, title, text, QMessageBox::Ok, QMessageBox::Ok);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -27,7 +27,7 @@ public:
|
||||
{
|
||||
Information, /**< Informational message */
|
||||
Warning, /**< Notify user of potential problem */
|
||||
Critical /**< An error occured */
|
||||
Critical /**< An error occurred */
|
||||
};
|
||||
|
||||
public slots:
|
||||
|
||||
@ -23,7 +23,7 @@ public:
|
||||
void setDateRange(const QDateTime &from, const QDateTime &to);
|
||||
void setAddressPrefix(const QString &addrPrefix);
|
||||
/**
|
||||
@note Type filter takes a bitfield created with TYPE() or ALL_TYPES
|
||||
@note Type filter takes a bit field created with TYPE() or ALL_TYPES
|
||||
*/
|
||||
void setTypeFilter(quint32 modes);
|
||||
void setMinAmount(qint64 minimum);
|
||||
|
||||
@ -203,7 +203,7 @@ void TransactionView::chooseDate(int idx)
|
||||
TransactionFilterProxy::MAX_DATE);
|
||||
break;
|
||||
case ThisWeek: {
|
||||
// Find last monday
|
||||
// Find last Monday
|
||||
QDate startOfWeek = current.addDays(-(current.dayOfWeek()-1));
|
||||
transactionProxyModel->setDateRange(
|
||||
QDateTime(startOfWeek),
|
||||
|
||||
@ -1061,7 +1061,7 @@ uint256 SignatureHash(CScript scriptCode, const CTransaction& txTo, unsigned int
|
||||
}
|
||||
else if ((nHashType & 0x1f) == SIGHASH_SINGLE)
|
||||
{
|
||||
// Only lockin the txout payee at same index as txin
|
||||
// Only lock-in the txout payee at same index as txin
|
||||
unsigned int nOut = nIn;
|
||||
if (nOut >= txTmp.vout.size())
|
||||
{
|
||||
|
||||
@ -34,7 +34,7 @@ BOOST_AUTO_TEST_CASE(DoS_banning)
|
||||
CNode dummyNode1(INVALID_SOCKET, addr1, true);
|
||||
dummyNode1.Misbehaving(100); // Should get banned
|
||||
BOOST_CHECK(CNode::IsBanned(addr1));
|
||||
BOOST_CHECK(!CNode::IsBanned(ip(0xa0b0c001|0x0000ff00))); // Different ip, not banned
|
||||
BOOST_CHECK(!CNode::IsBanned(ip(0xa0b0c001|0x0000ff00))); // Different IP, not banned
|
||||
|
||||
CAddress addr2(ip(0xa0b0c002));
|
||||
CNode dummyNode2(INVALID_SOCKET, addr2, true);
|
||||
|
||||
@ -739,7 +739,7 @@ void CWallet::ReacceptWalletTransactions()
|
||||
}
|
||||
else
|
||||
{
|
||||
// Reaccept any txes of ours that aren't already in a block
|
||||
// Re-accept any txes of ours that aren't already in a block
|
||||
if (!wtx.IsCoinBase())
|
||||
wtx.AcceptWalletTransaction(txdb, false);
|
||||
}
|
||||
@ -748,7 +748,7 @@ void CWallet::ReacceptWalletTransactions()
|
||||
{
|
||||
// TODO: optimize this to scan just part of the block chain?
|
||||
if (ScanForWalletTransactions(pindexGenesisBlock))
|
||||
fRepeat = true; // Found missing transactions: re-do Reaccept.
|
||||
fRepeat = true; // Found missing transactions: re-do re-accept.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user