0
0
Fork 0
mirror of https://github.com/bitcoin/bitcoin.git synced 2025-02-09 10:43:19 -05:00
bitcoin-bitcoin-core/src
Pieter Wuille c7f039b674 Process getdata invs separately until send buffer overflows
There exists a per-message-processed send buffer overflow protection,
where processing is halted when the send buffer is larger than the
allowed maximum.

This protection does not apply to individual items, however, and
getdata has the potential for causing large amounts of data to be
sent. In case several hundreds of blocks are requested in one getdata,
the send buffer can easily grow 50 megabytes above the send buffer
limit.

This commit breaks up the processing of getdata requests, remembering
them inside a CNode when too many are requested at once.
2013-03-30 18:14:54 +01:00
..
json Back out spacing changes to json spirit code 2012-01-19 14:32:45 -05:00
leveldb Fix corruption bug found and analyzed by dhruba@gmail.com 2013-01-23 14:00:29 -05:00
obj Bump version numbers for 0.6.1rc1 2012-04-27 10:14:33 -04:00
obj-test Rename src/obj/test to src/obj-test to workaround bug in older GNU Make 2012-01-23 14:27:08 -05:00
qt qt: Improve capslock detection on non-us keyboards (issue #1855) 2013-03-29 10:55:23 +01:00
test -alertnotify=<cmd> 2013-03-19 15:16:30 -04:00
addrman.cpp Split off hash.h from util.h 2012-12-18 21:39:29 +01:00
addrman.h Trim trailing whitespace for src/*.{h,cpp} 2012-09-18 15:07:58 -04:00
alert.cpp -alertnotify=<cmd> 2013-03-19 15:16:30 -04:00
alert.h -alertnotify=<cmd> 2013-03-19 15:16:30 -04:00
allocators.h don't use memset() in privacy/security relevant code parts 2012-11-09 12:53:53 +01:00
base58.h make CBase58Data class use zero_after_free_allocator 2012-11-09 19:25:20 +01:00
bignum.h Fix two typos in main.h 2012-12-17 18:09:53 +08:00
bitcoinrpc.cpp Recommend alertnotify 2013-03-21 10:08:21 -04:00
bitcoinrpc.h CRPCCommand.unlocked -> CRPCCommand.threadSafe 2013-03-07 06:18:55 -05:00
bloom.cpp Short-circuit bloom checking if we will always return true. 2013-02-24 20:36:59 -05:00
bloom.h Add nFlags to CBloomFilter to make filter updating optional. 2013-01-16 14:34:06 -05:00
checkpoints.cpp Checkpoint at first block in 11 March chain fork 2013-03-17 21:53:17 -04:00
checkpoints.h Merge pull request #2186 from Diapolo/misc_stuff 2013-02-23 23:52:27 -08:00
checkqueue.h Improve block database load error reporting 2013-02-17 23:25:42 +01:00
clientversion.h Bump version numbers for 0.8 release 2013-01-30 14:19:09 -05:00
compat.h Update License in File Headers 2012-05-18 22:02:28 +08:00
crypter.cpp don't use memset() in privacy/security relevant code parts 2012-11-09 12:53:53 +01:00
crypter.h don't use memset() in privacy/security relevant code parts 2012-11-09 12:53:53 +01:00
db.cpp Bitcoin-Qt: fix crash on Windows caused by CDBEnv::EnvShutdown() 2012-11-18 14:10:26 +01:00
db.h Bitcoin-Qt: fix crash on Windows caused by CDBEnv::EnvShutdown() 2012-11-18 14:10:26 +01:00
hash.cpp Add MurmurHash3 implementation to hash.h/add hash.cpp. 2013-01-16 12:48:01 -05:00
hash.h Add MurmurHash3 implementation to hash.h/add hash.cpp. 2013-01-16 12:48:01 -05:00
init.cpp Merge pull request #2411 from TheBlueMatt/master 2013-03-29 08:03:18 -07:00
init.h introduce a new StartShutdown() function, which starts a thread with Shutdown() if no GUI is used and calls uiInterface.QueueShutdown() if a GUI is used / all direct uiInterface.QueueShutdown() calls are replaced with Shutdown() - this ensures a clean GUI shutdown, even when catching a SIGTERM and allows the BitcoinGUI destructor to get called (which fixes a tray-icon issue and keeps the tray-icon until Bitcoin-Qt exits) 2012-06-12 07:21:03 +02:00
key.cpp Compact serialization for scripts 2012-10-20 23:08:56 +02:00
key.h Split off hash.h from util.h 2012-12-18 21:39:29 +01:00
keystore.cpp Refactor: split CKeyID/CScriptID/CTxDestination from CBitcoinAddress 2012-05-24 20:26:19 +02:00
keystore.h Refactor: split CKeyID/CScriptID/CTxDestination from CBitcoinAddress 2012-05-24 20:26:19 +02:00
leveldb.cpp Deal with LevelDB errors 2013-01-30 04:30:02 +01:00
leveldb.h Deal with LevelDB errors 2013-01-30 04:30:02 +01:00
main.cpp Process getdata invs separately until send buffer overflows 2013-03-30 18:14:54 +01:00
main.h Merge pull request #2186 from Diapolo/misc_stuff 2013-02-23 23:52:27 -08:00
makefile.linux-mingw (finally) Remove IRC Seed support now that lfnet is down. 2013-03-24 19:38:19 -04:00
makefile.mingw (finally) Remove IRC Seed support now that lfnet is down. 2013-03-24 19:38:19 -04:00
makefile.osx (finally) Remove IRC Seed support now that lfnet is down. 2013-03-24 19:38:19 -04:00
makefile.unix (finally) Remove IRC Seed support now that lfnet is down. 2013-03-24 19:38:19 -04:00
mruset.h If (for example) the new max_size must be 5 then at the end the queue.size() must be <= 5, so the exit condition must be <=, so the continuing condition must be > (and not >= as it was). 2012-06-19 09:48:00 +03:00
net.cpp Use per-message send buffer, rather than per connection 2013-03-29 23:56:26 +01:00
net.h Process getdata invs separately until send buffer overflows 2013-03-30 18:14:54 +01:00
netbase.cpp Split off hash.h from util.h 2012-12-18 21:39:29 +01:00
netbase.h Merge pull request #1913 from sipa/noi2p 2012-10-11 00:41:33 -07:00
noui.cpp Improve block database load error reporting 2013-02-17 23:25:42 +01:00
protocol.cpp Relay CMerkleBlocks when asked for MSG_FILTERED_BLOCK 2013-01-16 12:48:02 -05:00
protocol.h Use per-message send buffer, rather than per connection 2013-03-29 23:56:26 +01:00
rpcblockchain.cpp Make output of gettxout RPC more consistent 2013-01-04 22:51:11 +01:00
rpcdump.cpp add rescan bool to importprivkey to control whether to do a rescan after import 2012-12-06 20:18:17 -06:00
rpcmining.cpp Do not use C++11 std::vector.data() 2013-02-07 18:54:22 -05:00
rpcnet.cpp Add a getaddednodeinfo RPC. 2013-01-27 03:03:04 -05:00
rpcrawtransaction.cpp Signrawtransaction shouldn't require redeemScript for non-p2sh txins. 2013-02-01 22:59:42 -05:00
rpcwallet.cpp Add timeoffset to getinfo RPC call 2013-01-11 06:11:34 -05:00
script.cpp Merge pull request #2114 from sipa/strictstrict 2013-01-23 07:08:55 -08:00
script.h Replace 520 constant with MAX_SCRIPT_ELEMENT_SIZE 2013-01-18 13:55:18 -05:00
serialize.h Use per-message send buffer, rather than per connection 2013-03-29 23:56:26 +01:00
sync.cpp Trim trailing whitespace for src/*.{h,cpp} 2012-09-18 15:07:58 -04:00
sync.h Merge pull request #2003 from alexanderkjeldaas/documented-locking-part-2 2012-12-12 09:27:35 -08:00
threadsafety.h o Added threadsafety.h - a set of macros using the -Wthread-safety 2012-11-11 00:53:00 -03:00
txdb.cpp Merge pull request #2221 from sipa/perfo 2013-02-22 09:01:30 -08:00
txdb.h Merge pull request #2221 from sipa/perfo 2013-02-22 09:01:30 -08:00
ui_interface.h Improve block database load error reporting 2013-02-17 23:25:42 +01:00
uint256.h Add const versions of base_uint.end()/begin(), make size() const. 2013-01-16 12:48:01 -05:00
util.cpp Merge pull request #2229 from sipa/prealloc 2013-02-22 09:00:13 -08:00
util.h Merge pull request #2229 from sipa/prealloc 2013-02-22 09:00:13 -08:00
version.cpp Bitcoin-Qt (Windows only): add version info to Resource File 2012-09-07 16:08:18 +02:00
version.h Bump PROTOCOL_VERSION for filter messages. 2013-01-16 12:48:02 -05:00
wallet.cpp Merge pull request #2312 from gmaxwell/random_random 2013-02-22 08:57:38 -08:00
wallet.h Merge pull request #1861 from jgarzik/coinlock 2012-12-12 09:15:43 -08:00
walletdb.cpp CValidationState framework 2013-01-30 03:56:44 +01:00
walletdb.h Handle corrupt wallets gracefully. 2012-10-08 17:46:45 -04:00