aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2017-02-10Move CNode::addrName accesses behind locked accessorsMatt Corallo
2017-02-10Make nTimeBestReceived atomicMatt Corallo
2017-02-10Move [clean|str]SubVer writes/copyStats into a lockMatt Corallo
2017-02-10Make nServices atomicMatt Corallo
2017-02-10Make nStartingHeight atomicMatt Corallo
2017-02-10Access fRelayTxes with cs_filter lock in copyStatsMatt Corallo
2017-02-10Avoid copying CNodeStats to make helgrind OK with buggy std::stringMatt Corallo
2017-02-10Make nTimeConnected const in CNodeMatt Corallo
2017-02-10net: fix a few races. Credit @TheBlueMattCory Fields
These are (afaik) all long-standing races or concurrent accesses. Going forward, we can clean these up so that they're not all individual atomic accesses. - Reintroduce cs_vRecv to guard receive-specific vars - Lock vRecv/vSend for CNodeStats - Make some vars atomic. - Only set the connection time in CNode's constructor so that it doesn't change
2017-02-10Merge #9698: net: fix socket close raceWladimir J. van der Laan
9a0b784 net: add a lock around hSocket (Cory Fields) 45e2e08 net: rearrange so that socket accesses can be grouped together (Cory Fields)
2017-02-10Pre-0.14.0 hardcoded seeds updateWladimir J. van der Laan
2017-02-10qt: Periodic translations updateWladimir J. van der Laan
2017-02-09Remove bitseed.xf2.org form the dns seed listJonas Schnelli
2017-02-09Merge #9718: Qt/Intro: Various fixesWladimir J. van der Laan
a9baa6d Bugfix: Qt/Intro: Pruned nodes never require *more* space (Luke Dashjr) 93ffba7 Bugfix: Qt/Intro: Chain state needs to be stored even with the full blockchain (Luke Dashjr) c8cee26 Qt/Intro: Update block chain size (Luke Dashjr)
2017-02-08Bugfix: Qt/Intro: Pruned nodes never require *more* spaceLuke Dashjr
2017-02-08Bugfix: Qt/Intro: Chain state needs to be stored even with the full blockchainLuke Dashjr
2017-02-08Qt/Intro: Update block chain sizeLuke Dashjr
2017-02-08Merge #9674: Always enforce strict lock ordering (try or not)Wladimir J. van der Laan
618ee92 Further-enforce lockordering by enforcing directly after TRY_LOCKs (Matt Corallo) 2a962d4 Fixup style a bit by moving { to the same line as if statements (Matt Corallo) 8465631 Always enforce lock strict lock ordering (try or not) (Matt Corallo) fd13eca Lock cs_vSend and cs_inventory in a consistent order even in TRY (Matt Corallo)
2017-02-07Disconnect peers which we do not receive VERACKs from within 60 secMatt Corallo
2017-02-07Further-enforce lockordering by enforcing directly after TRY_LOCKsMatt Corallo
2017-02-07bench: Fix initialization order in registrationWladimir J. van der Laan
The initialization order of global data structures in different implementation units is undefined. Making use of this is essentially gambling on what the linker does, the so-called [Static initialization order fiasco](https://isocpp.org/wiki/faq/ctors#static-init-order). In this case it apparently worked on Linux but failed on OpenBSD and FreeBSD. To create it on first use, make the registration structure local to a function. Fixes #8910.
2017-02-07Use z = std::max(x - y, 0); instead of z = x - y; if (z < 0) z = 0;practicalswift
2017-02-07Merge #9532: Remove unused variablesWladimir J. van der Laan
90fd29b Remove unused int64_t nSinceLastSeen (practicalswift) ac4a095 Remove unused Python variables (practicalswift)
2017-02-07Merge #9604: [Trivial] add comment about setting peer as HB peer.Wladimir J. van der Laan
dd5b011 [Trivial] add comment about setting peer as HB peer. (John Newbery)
2017-02-06net: add a lock around hSocketCory Fields
2017-02-06net: rearrange so that socket accesses can be grouped togetherCory Fields
2017-02-06Merge #9227: Make nWalletDBUpdated atomic to avoid a potential race.Wladimir J. van der Laan
d63ff62 Make nWalletDBUpdated atomic to avoid a potential race. (Patrick Strateman)
2017-02-06Merge #9378: [trivial] Add documentation for CWalletTx::fFromMe member.Wladimir J. van der Laan
39c77b0 Add documentation for CWalletTx::fFromMe member. (Russell Yanofsky)
2017-02-06Merge #9650: Better handle invalid parameters to signrawtransactionWladimir J. van der Laan
6dbfe08 [qa] test signrawtransaction merge with missing inputs (Matt Corallo) ec4f7e4 [qa] Add second input to signrawtransaction test case (Matt Corallo) 691710a [qa] Test that decoderawtransaction throws with extra data appended (Matt Corallo) 922bea9 Better handle invalid parameters to signrawtransaction (Matt Corallo) 7ea0ad5 Fail in DecodeHexTx if there is extra data at the end (Matt Corallo)
2017-02-06Merge #9659: Net: Turn some methods and params/variables constWladimir J. van der Laan
0729102 Net: pass interruptMsgProc as const where possible (Jorge Timón) fc7f2ff Net: Make CNetMsgMaker more const (Jorge Timón) d45955f Net: CConnman: Make some methods const (Jorge Timón)
2017-02-06Merge #9651: Fix typosWladimir J. van der Laan
5f62e3e Fix typos (practicalswift)
2017-02-06Merge #9673: Set correct metadata on bumpfee wallet transactionsWladimir J. van der Laan
4ec057d [wallet] Set correct metadata on bumpfee wallet transactions (Russell Yanofsky)
2017-02-06Merge #9691: Init ECC context for test_bitcoin_fuzzy.Wladimir J. van der Laan
ac719c9 Init ECC context for test_bitcoin_fuzzy. (Gregory Maxwell)
2017-02-05Merge #9578: Add missing mempool lock for CalculateMemPoolAncestorsPieter Wuille
003cd60 Add missing mempool lock for CalculateMemPoolAncestors (Matt Corallo)
2017-02-05Init ECC context for test_bitcoin_fuzzy.Gregory Maxwell
This avoids calling things like pubkey_parse with a null context argument.
2017-02-04Fixup style a bit by moving { to the same line as if statementsMatt Corallo
2017-02-04Merge #9671: Fix super-unlikely race introduced in 236618061a445d2cb11e72Wladimir J. van der Laan
885cfdd Fix super-unlikely race introduced in 236618061a445d2cb11e72 (Matt Corallo)
2017-02-04Merge #9609: net: fix remaining net assertionsWladimir J. van der Laan
08bb6f4 net: log an error rather than asserting if send version is misused (Cory Fields) 7a8c251 net: Disallow sending messages until the version handshake is complete (Cory Fields) 12752af net: don't run callbacks on nodes that haven't completed the version handshake (Cory Fields) 2046617 net: deserialize the entire version message locally (Cory Fields) 80ff034 Dont deserialize nVersion into CNode, should fix #9212 (Matt Corallo)
2017-02-03Access WorkQueue::running only within the cs lock.Matt Corallo
This removes a "race" between Interrupt() and Run(), though it should not effect any of our supported platforms.
2017-02-02Always enforce lock strict lock ordering (try or not)Matt Corallo
2017-02-02Lock cs_vSend and cs_inventory in a consistent order even in TRYMatt Corallo
2017-02-02[wallet] Set correct metadata on bumpfee wallet transactionsRussell Yanofsky
Preserve comment, order form, and account strings from the original wallet transaction. Also set fTimeReceivedIsTxTime and fFromMe fields for consistency with CWallet::CreateTransaction. The latter two fields don't influence current wallet behavior, but do record that the transaction originated in the wallet instead of coming from the network or sendrawtransaction.
2017-02-02Better handle invalid parameters to signrawtransactionMatt Corallo
This silently skips trying to merge signatures from inputs which do not exist from transactions provided to signrawtransaction, instead of hitting an assert.
2017-02-02Fail in DecodeHexTx if there is extra data at the endMatt Corallo
2017-02-02net: log an error rather than asserting if send version is misusedCory Fields
Also cleaned up the comments and moved from the header to the .cpp so that logging headers aren't needed from net.h
2017-02-02net: Disallow sending messages until the version handshake is completeCory Fields
This is a change in behavior, though it's much more sane now than before.
2017-02-02net: don't run callbacks on nodes that haven't completed the version handshakeCory Fields
Since ForEach* are can be used to send messages to all nodes, the caller may end up sending a message before the version handshake is complete. To limit this, filter out these nodes. While we're at it, may as well filter out disconnected nodes as well. Delete unused methods rather than updating them.
2017-02-02net: deserialize the entire version message locallyCory Fields
This avoids having some vars set if the version negotiation fails. Also copy it all into CNode at the same site. nVersion and fSuccessfullyConnected are set last, as they are the gates for the other vars. Make them atomic for that reason.
2017-02-02Dont deserialize nVersion into CNode, should fix #9212Matt Corallo
2017-02-02Fix super-unlikely race introduced in 236618061a445d2cb11e72Matt Corallo
Once the CNode has been added to vNodes, it is possible that it is disconnected+deleted in the socket handler thread. However, after that we now call InitializeNode, which accesses the pnode. helgrind managed to tickle this case (somehow), but I suspect it requires in immensely braindead scheduler.