Arvid Norberg
|
cdf459dad5
|
only keep one outstanding duplicate request per peer
|
2009-12-25 16:52:57 +00:00 |
Arvid Norberg
|
d84c59d13b
|
upload only fix
|
2009-12-05 16:46:10 +00:00 |
Arvid Norberg
|
1f5859d31f
|
error_code fix. added is_error_code_enum template specialization and using the abbreviated syntax to build error_codes
|
2009-11-29 07:06:38 +00:00 |
Arvid Norberg
|
39dae9e6dc
|
some GCC 2.95 support fixes and some BeOS support
|
2009-11-28 22:41:21 +00:00 |
Arvid Norberg
|
1d6d11bf0c
|
storage fix
|
2009-11-28 08:58:07 +00:00 |
Arvid Norberg
|
ddceb1487d
|
fixed building with no IPv6 support
|
2009-11-27 18:46:29 +00:00 |
Arvid Norberg
|
8dd244581d
|
header optimizations
|
2009-11-26 05:45:43 +00:00 |
Arvid Norberg
|
2280454a99
|
support upload-only extension message
|
2009-11-24 18:49:59 +00:00 |
Arvid Norberg
|
6343fe6a6d
|
optimized header dependencies to lower build time
|
2009-11-23 08:38:50 +00:00 |
Arvid Norberg
|
0880b74e6d
|
fixed timestamp wrapping issue
|
2009-11-18 18:43:54 +00:00 |
Arvid Norberg
|
550c67a308
|
fixed local rate limit feature
|
2009-11-14 21:25:13 +00:00 |
Arvid Norberg
|
c07b1d0981
|
fixed bug in remote download rate calculation
|
2009-11-14 20:55:42 +00:00 |
Arvid Norberg
|
158dd71ac2
|
performance optimization for buffer allocations
|
2009-11-11 05:29:34 +00:00 |
Arvid Norberg
|
1c377b1807
|
streaming fixes
|
2009-11-02 01:01:07 +00:00 |
Arvid Norberg
|
c7834818f8
|
fix assert when snubbing peers
|
2009-11-01 00:47:22 +00:00 |
Arvid Norberg
|
86488f95e7
|
fixed ifdef typo
|
2009-10-29 04:18:58 +00:00 |
Arvid Norberg
|
dcd8bb6718
|
move stats instrumentation to .cpp file to fix header dependency issue
|
2009-10-28 19:56:18 +00:00 |
Arvid Norberg
|
8a5b7d5d36
|
got rid of the last recursive mutexes. abstracted the threading primitives (and switched over to use asio's internal ones).
|
2009-10-20 02:49:56 +00:00 |
Arvid Norberg
|
ac2ef7dd39
|
fixed division by zero in get_peer_info()
|
2009-10-03 15:24:59 +00:00 |
Arvid Norberg
|
6858a29b83
|
fixed potential pure virtual function call in extensions on shutdown
|
2009-09-14 02:08:34 +00:00 |
Arvid Norberg
|
35bca49c61
|
add torrent priority to adjust bandwidth allocation of torrent's peers
|
2009-09-13 02:24:25 +00:00 |
Arvid Norberg
|
ce9cf5657d
|
some cleanup and moved the upload_only = true to avoid failing an invariant check
|
2009-09-12 21:27:52 +00:00 |
Arvid Norberg
|
f7ebefb285
|
fixed checking of fast and suggest messages when used with magnet links
|
2009-09-01 04:41:50 +00:00 |
Arvid Norberg
|
b3372dced6
|
fixed rare request queuing issue for peers in parole mode
|
2009-08-28 07:48:31 +00:00 |
Arvid Norberg
|
45fd696bc6
|
added I2P support
|
2009-08-20 03:19:12 +00:00 |
Arvid Norberg
|
51c38c2e16
|
added performance warning when hitting the send buffer watermark limit
|
2009-08-17 20:29:09 +00:00 |
Arvid Norberg
|
a6bcb8f8c9
|
fixed issue where web seed connections might have been disconnected in the constructor (which causes problems)
|
2009-08-08 15:27:07 +00:00 |
Arvid Norberg
|
5d76c19168
|
disconnect redundant fix
|
2009-08-02 00:05:41 +00:00 |
Arvid Norberg
|
78a6df0b2a
|
connect candidate fix
|
2009-08-01 22:48:43 +00:00 |
Arvid Norberg
|
ab26b1a5ff
|
removed redundant code
|
2009-07-26 02:35:16 +00:00 |
Arvid Norberg
|
137d2d63f5
|
cleaned up policy. Moved logic from policy to torrent
|
2009-07-23 04:38:52 +00:00 |
Arvid Norberg
|
848a4b2cf2
|
fixed bug where downloading from peers could stall when downloading at very high rates
|
2009-07-21 04:29:29 +00:00 |
Arvid Norberg
|
7ad858ccd9
|
fixed rate limiter bug for local (unthrottled) connections
|
2009-07-19 09:17:40 +00:00 |
Arvid Norberg
|
ae3be201c4
|
reduced the number of floating point operations to better support systems with no FPU
|
2009-07-19 04:59:27 +00:00 |
Arvid Norberg
|
3db42de4d9
|
fixed cancel_all_request() in peer_connection
|
2009-07-18 16:34:19 +00:00 |
Arvid Norberg
|
52f39a9af0
|
fixed inconsistency between peer's request list and piece picker in rare cases
|
2009-07-02 06:43:05 +00:00 |
Arvid Norberg
|
76db4627f6
|
another pending_bytes fix
|
2009-07-01 04:14:43 +00:00 |
Arvid Norberg
|
50fed84fe6
|
fixed typo
|
2009-06-28 22:58:21 +00:00 |
Arvid Norberg
|
315a4cdd1e
|
some extra precaution for m_outstanding_bytes
|
2009-06-28 21:50:18 +00:00 |
Arvid Norberg
|
ed0df519d7
|
fixed outstanding bytes counter assert
|
2009-06-28 21:09:07 +00:00 |
Arvid Norberg
|
6ddf63197f
|
added more asserts around outstanding bytes counter
|
2009-06-28 07:39:06 +00:00 |
Arvid Norberg
|
cbc740ee4f
|
fixed bug where one allowed-fast message would be sent even when disabled
|
2009-06-28 00:47:49 +00:00 |
Arvid Norberg
|
2c5ef0debf
|
fixed disk stats assert
|
2009-06-23 08:10:59 +00:00 |
Arvid Norberg
|
c2e39ec907
|
adjust piece timeouts depending on download rate limit
|
2009-06-23 05:28:36 +00:00 |
Arvid Norberg
|
c47f9cd64c
|
fix channel_state assert
|
2009-06-19 18:19:24 +00:00 |
Arvid Norberg
|
f09774607f
|
added upload mode
|
2009-06-18 22:32:55 +00:00 |
Arvid Norberg
|
6b048dc85e
|
fixed bug in connect candidate counter
|
2009-06-18 16:16:41 +00:00 |
Arvid Norberg
|
2da772210c
|
fix to make torrent_status::list_peers more accurate
|
2009-06-13 04:14:41 +00:00 |
Arvid Norberg
|
07bcb3545a
|
converted a whole lot of error strings into error_codes. Documented some previously undocumented alerts as well as all the error codes
|
2009-06-12 16:40:38 +00:00 |
Arvid Norberg
|
af25f26538
|
correction of previous 'assert fix'
|
2009-06-12 16:12:19 +00:00 |
Arvid Norberg
|
5e87420b6f
|
set all piece priorities to 0 when a write fails
|
2009-06-10 09:20:55 +00:00 |
Arvid Norberg
|
f0134c1b11
|
improved disk error handling and expanded use of error_code in error reporting
|
2009-06-10 08:30:55 +00:00 |
Arvid Norberg
|
bd33814376
|
improve disk error handling
|
2009-05-31 22:41:53 +00:00 |
Arvid Norberg
|
0283f07aed
|
more buffer categories to help debugging
|
2009-05-31 22:38:49 +00:00 |
Arvid Norberg
|
524151c040
|
don't make more calls to the disk thread when aborting
|
2009-05-31 19:25:26 +00:00 |
Arvid Norberg
|
6b4fcfcd38
|
fixed assert
|
2009-05-31 10:43:29 +00:00 |
Arvid Norberg
|
177a7e881c
|
fixed handling of dropped request
|
2009-05-31 05:50:07 +00:00 |
Arvid Norberg
|
31cae31ccc
|
fix invariant check failure
|
2009-05-30 04:27:26 +00:00 |
Arvid Norberg
|
d25d09cb70
|
fixed assert in peer_connection invariant check
|
2009-05-30 04:03:57 +00:00 |
Arvid Norberg
|
7b8ac7276c
|
added some more asserts around m_outstanding_bytes
|
2009-05-26 16:12:09 +00:00 |
Arvid Norberg
|
30c704523c
|
caches the time every 100 ms and use the cache where high resolution timer is not needed
|
2009-05-25 02:45:51 +00:00 |
Arvid Norberg
|
e3c07c0934
|
converted some recursive mutexes to regular ones
|
2009-05-23 21:36:09 +00:00 |
Daniel Wallin
|
6014ac1e7a
|
Allocate memory for read/write handlers inplace inside peer_connection instance.
|
2009-05-20 08:57:08 +00:00 |
Arvid Norberg
|
31c422df0a
|
added feature to set a separate global rate limit for local peers
|
2009-05-14 17:21:19 +00:00 |
Arvid Norberg
|
d5164b1b1e
|
fixed typo. made it possible to set max_outstanding_disk_bytes_per_connection to 0
|
2009-05-12 17:57:52 +00:00 |
Arvid Norberg
|
bc20af9375
|
ban self-connections, in order to not try them again
|
2009-05-07 05:10:19 +00:00 |
Arvid Norberg
|
c8176cca55
|
optimized peer storage in resume data an in memory. Should use far less memory than previously for the peer list. Introduced peer source affinity, to avoid problem with a peer list that's diluted with stale peers
|
2009-05-06 22:36:24 +00:00 |
Arvid Norberg
|
89ac9916d7
|
replaced std::set with std::vector for accept fast piece list
|
2009-05-04 00:08:00 +00:00 |
Arvid Norberg
|
641abc6c4a
|
slight memory optimization and some header cleanup
|
2009-05-03 20:21:24 +00:00 |
Arvid Norberg
|
06b609aa1f
|
fixed unchoke bug. made the automatic unchoke strategy the default
|
2009-05-02 03:15:52 +00:00 |
Arvid Norberg
|
3cf34e3a91
|
greatly optimised memory usage for peer list
|
2009-04-30 05:49:46 +00:00 |
Arvid Norberg
|
c7dd73dd08
|
add asserts to catch negative m_outstanding_bytes
|
2009-04-26 19:44:08 +00:00 |
Arvid Norberg
|
7109b86566
|
greatly simplified the rate limiter and generalized all rate limits (peer, torrent, global) to allow for arbitrary rate limit configurations
|
2009-04-26 00:21:59 +00:00 |
Arvid Norberg
|
fba4ae541c
|
fixed invalid iterator access in debug mode
|
2009-04-25 08:19:21 +00:00 |
Arvid Norberg
|
679a594f4e
|
fixed typo in verbose bandwidth logging
|
2009-04-24 17:40:40 +00:00 |
Arvid Norberg
|
3c51ceb7c5
|
fixed bug when receiving keepalive message
|
2009-04-21 19:27:52 +00:00 |
Arvid Norberg
|
90ce06bb47
|
web seed fix
|
2009-04-11 20:45:14 +00:00 |
Arvid Norberg
|
c6f2aa129c
|
minor peer_connection fixes
|
2009-04-04 16:19:19 +00:00 |
Arvid Norberg
|
e6f2073cd3
|
IPv6 fix
|
2009-04-04 10:08:07 +00:00 |
Arvid Norberg
|
aba5b2e9d0
|
dropped some iostream dependencies
|
2009-04-04 09:52:25 +00:00 |
Arvid Norberg
|
db8487be46
|
auto unchoke improvement
|
2009-04-04 07:55:34 +00:00 |
Arvid Norberg
|
33912a0fb7
|
invariant check fix
|
2009-03-31 18:01:12 +00:00 |
Arvid Norberg
|
0070232f7c
|
attempt to fix #493 by keeping io_service running while there are still peer connections
|
2009-03-31 08:02:25 +00:00 |
Arvid Norberg
|
9c4c49c443
|
logging build fix and indentation fix
|
2009-03-27 17:14:15 +00:00 |
Arvid Norberg
|
fb5ae3dc97
|
fixed dual IP stack issue
|
2009-03-22 20:34:57 +00:00 |
Arvid Norberg
|
31054ef069
|
first implementation of set_piece_deadline
|
2009-03-17 09:34:44 +00:00 |
Arvid Norberg
|
84a513bffb
|
initial support for merkle hash tree torrents
|
2009-03-13 06:09:39 +00:00 |
Arvid Norberg
|
f07ff08dd2
|
we can send requests when we're choked (for allowed fast pieces)
|
2009-03-12 17:27:59 +00:00 |
Arvid Norberg
|
0de21dc815
|
fixed bug related to ignoring upload slots and made the piece rejection code more robust to handle similar bugs better
|
2009-03-12 17:06:41 +00:00 |
Arvid Norberg
|
93eda7c7fa
|
fix ignore unchoke slot invariant check
|
2009-03-01 07:20:08 +00:00 |
Arvid Norberg
|
b25a8db2a6
|
added more error codes. consolidated exception classes into one. moved over more places to use error_code instead of strings. fixed proper error handling for torrent_info
|
2009-02-23 01:21:19 +00:00 |
Arvid Norberg
|
7fff6ace1b
|
added download queue time estimate
|
2009-02-17 02:33:45 +00:00 |
Arvid Norberg
|
1ac8f806fa
|
added seed mode support (lazy hash checking)
|
2009-02-03 07:46:24 +00:00 |
Arvid Norberg
|
2623037482
|
local peers are excempt from unchoke slots. #469
|
2009-01-28 06:14:21 +00:00 |
Arvid Norberg
|
8030454c96
|
fixes problem whith lexical_cast being locale dependent
|
2009-01-27 06:17:55 +00:00 |
Arvid Norberg
|
c951ab3507
|
fixed potential problem if there are not enough references to a peer_connection when its disconnected
|
2009-01-25 02:45:31 +00:00 |
Arvid Norberg
|
b3a17b1787
|
added disk buffer instrumentation and log parser
|
2009-01-23 09:13:31 +00:00 |
Arvid Norberg
|
3f94cc8857
|
made the sequential download mode slightly more sequential (by letting more categories of peers request early pieces). Disabled speed affinity and prefer_whole_pieces when in sequential download mode
|
2009-01-14 09:07:27 +00:00 |
Arvid Norberg
|
725fdef85e
|
IP overhead calculation fix
|
2008-12-28 20:06:59 +00:00 |
Arvid Norberg
|
952ed687cd
|
made session stats config build
|
2008-12-26 07:00:21 +00:00 |
Arvid Norberg
|
5bc4a2089d
|
fixed seeding choking algorithm to be more fair (proper round robin)
|
2008-12-10 23:07:44 +00:00 |
Arvid Norberg
|
5fb854d724
|
improved super seeding with strict option
|
2008-12-09 07:56:37 +00:00 |
Arvid Norberg
|
b41cdd6469
|
initial super seeding support
|
2008-12-08 06:36:22 +00:00 |
Arvid Norberg
|
a00ddba109
|
fixed bug that would grossly underestimate the TCP/IP overhead
|
2008-12-01 07:23:58 +00:00 |
Arvid Norberg
|
09b3a865ef
|
fixed compiler flags in pkg-config file and made header files not depend on the NDEBUG define
|
2008-11-29 21:33:21 +00:00 |
Arvid Norberg
|
70119a6b53
|
consider 0-sized piece messages to be reject messages
|
2008-11-17 19:29:14 +00:00 |
Arvid Norberg
|
370ee02ef6
|
fixed incorrect assert when receiving a 0-size piece message
|
2008-11-17 19:12:34 +00:00 |
Arvid Norberg
|
c3bbf138a4
|
estimate TCP/IP overhead more accurately
|
2008-11-14 20:51:49 +00:00 |
Arvid Norberg
|
a5ba060240
|
when calculating desired queue size, block size should not depend on whether or not they are merged in the requests
|
2008-11-12 00:54:44 +00:00 |
Arvid Norberg
|
a7af4d806b
|
verbose logging improvement
|
2008-11-11 23:45:43 +00:00 |
Arvid Norberg
|
3412c0f709
|
added option to set peers in a state where it doesn't download
|
2008-11-06 08:34:56 +00:00 |
Arvid Norberg
|
e0bea061b5
|
disabled an expensive assert when TORRENT_EXPENSIVE_INVARIANT_CHECKS is not defined
|
2008-11-01 19:44:39 +00:00 |
Arvid Norberg
|
44e9ff70de
|
disconnect_if_redundant fix
|
2008-11-01 10:14:11 +00:00 |
Arvid Norberg
|
971f437b41
|
added num_pieces to peer_info. Fixes #385
|
2008-10-24 00:15:39 +00:00 |
Arvid Norberg
|
392dbb71da
|
more fixes to avoid unwanted exceptions
|
2008-10-23 04:10:23 +00:00 |
Arvid Norberg
|
a6ba48a60a
|
removed exception usage in dht implementation and peer_connection
|
2008-10-21 17:10:11 +00:00 |
Arvid Norberg
|
8b835bf75f
|
fix to faster unchoke a new peer if an unchoked peer becomes uninterested
|
2008-10-18 22:12:05 +00:00 |
Arvid Norberg
|
f5f03ff681
|
improved seeding of files with small pieces to avoid swithing back and forth between unchoke sets
|
2008-10-17 04:33:22 +00:00 |
Arvid Norberg
|
2d1b72628e
|
fix for unchoke_compare
|
2008-10-15 04:52:07 +00:00 |
Arvid Norberg
|
9152bc8712
|
fix to peer_connection::unchoke_compare
|
2008-10-15 02:18:59 +00:00 |
Arvid Norberg
|
f0cd0c152c
|
removed incorrect assert from recent check-in
|
2008-10-14 03:01:19 +00:00 |
Arvid Norberg
|
fdadccf7a2
|
asserts for unchoke slot handling
|
2008-10-14 02:03:54 +00:00 |
Arvid Norberg
|
c709cd28a8
|
fixes seeding behavior to avoid flipping unchoke slots back and forth too often
|
2008-10-14 00:57:58 +00:00 |
Arvid Norberg
|
62e365225b
|
made some moer invariant checks count as expensive
|
2008-10-10 07:08:46 +00:00 |
Arvid Norberg
|
b417a03877
|
removed unnecessary invariant check
|
2008-10-10 05:38:19 +00:00 |
Arvid Norberg
|
8499fd2fe2
|
moved some invariant checks into 'full-invariant-checks' builds
|
2008-10-10 05:25:55 +00:00 |
Arvid Norberg
|
d06fea3d6c
|
fix to handle 0-size piece response without asserting
|
2008-10-06 03:23:47 +00:00 |
Arvid Norberg
|
ccd75006d4
|
fixed failing invariant check caused by a life-time issue in debug mode
|
2008-10-05 23:36:50 +00:00 |
Arvid Norberg
|
7733f74d7a
|
fixed invariant check in peer_connection
|
2008-10-05 22:09:33 +00:00 |
Arvid Norberg
|
47c476dc0a
|
include TCP handshake overhead
|
2008-09-26 06:10:21 +00:00 |
Andrew Resch
|
4189e0b697
|
add peer_info::progress
|
2008-09-25 20:39:06 +00:00 |
Arvid Norberg
|
a3751cfcbe
|
fixed bug in peer_connection::incoming_piece() in case blocks were skipped. Fixed warnings.
|
2008-09-25 20:12:53 +00:00 |
Arvid Norberg
|
bb674134e3
|
fixed bind_port for outgoing peer connections
|
2008-09-25 07:40:55 +00:00 |
Arvid Norberg
|
13b343c1af
|
added assertions that the stats is updated properly when receiving and sending bytes on peer_connections
|
2008-09-21 17:12:26 +00:00 |
Arvid Norberg
|
f3d542fb2c
|
fixed inconsistent upload_only and seed in some cases when running a metadata-less torrent
|
2008-09-19 23:02:45 +00:00 |
Arvid Norberg
|
eb89269b6a
|
update_interest fix for torrents without metadata
|
2008-09-19 07:14:24 +00:00 |
Arvid Norberg
|
e85cb90652
|
fixed assert in peer_connection
|
2008-09-19 02:37:05 +00:00 |
Arvid Norberg
|
e7df553fdd
|
fixed race condition when calling a function that re-evaluates the interested flags on peers (such as prioritize files) right after the metadata is received, but before the connections are initialized
|
2008-09-18 20:17:49 +00:00 |
Arvid Norberg
|
a61c1ee01d
|
more disconnect handling for upload-only
|
2008-09-07 10:00:58 +00:00 |
Arvid Norberg
|
41808f8742
|
big change to improve piece picker. Better end-game mode. More options on which pieces to pick.
|
2008-09-06 21:04:57 +00:00 |
Arvid Norberg
|
c7c0974d3f
|
fixed bugs in verbose logging
|
2008-09-04 14:39:02 +00:00 |
Arvid Norberg
|
d179280da2
|
fixed off-by-one error when receiving a piece which skipped a bunch of requests
|
2008-09-01 17:41:13 +00:00 |
Arvid Norberg
|
92ed7fb364
|
fixed metadata extension issues
|
2008-08-29 17:21:56 +00:00 |
Arvid Norberg
|
238dcea91d
|
fixed missing 'set_error' when write failed
|
2008-08-26 23:10:42 +00:00 |
Arvid Norberg
|
7cdc7b2912
|
fixed typo
|
2008-08-25 21:10:13 +00:00 |
Arvid Norberg
|
f407c6d24e
|
fixed bug in piece time-out code. Fixes #388
|
2008-08-25 15:25:46 +00:00 |
Arvid Norberg
|
71db0f32db
|
removed incorrect assert. Fixes #309
|
2008-08-21 11:54:38 +00:00 |
Arvid Norberg
|
37389e4fe4
|
added test to measure peak download rate and introduced performance warning alert when disk buffer limit and request limit are reached
|
2008-08-19 15:04:14 +00:00 |
Arvid Norberg
|
89907cdae8
|
fix no-metadata case to not send any other messages before the bitfield (which is sent once we have the metadata)
|
2008-08-16 22:07:15 +00:00 |
Arvid Norberg
|
68b61e4df6
|
removed redundant condition
|
2008-08-12 09:27:42 +00:00 |