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 |
Arvid Norberg
|
c725d44ced
|
fixed serious issue with 'disconnect redundant peers' where seeds would be disconnected while downloading
|
2008-08-12 08:18:05 +00:00 |
Arvid Norberg
|
a8562a9f19
|
small optimization of expensive invariant check
|
2008-07-30 06:42:08 +00:00 |
Arvid Norberg
|
7607034ab6
|
exposed upload_only in peer_info
|
2008-07-19 07:57:43 +00:00 |
Arvid Norberg
|
4597de74df
|
removed incorrect assert
|
2008-07-19 07:35:24 +00:00 |
Arvid Norberg
|
429a118dd2
|
keep track of interest more tightly. better support for upload_only
|
2008-07-18 10:03:42 +00:00 |
Arvid Norberg
|
5bf38323c1
|
removed invariant check that can get triggered in peer_connection::snub_peer
|
2008-07-13 08:06:24 +00:00 |
Arvid Norberg
|
1ed583011c
|
made the invariant checks cheaper and more useful. The full invariant checks are still available as an option
|
2008-07-12 17:51:59 +00:00 |
Arvid Norberg
|
535aaf8182
|
fix to previous parole fix
|
2008-07-11 09:25:03 +00:00 |
Arvid Norberg
|
589e098002
|
fixed parole mode with timeouts and made it optional
|
2008-07-11 09:23:22 +00:00 |
Arvid Norberg
|
96ca475652
|
added redundant and failed byte counters to session
|
2008-07-11 07:30:04 +00:00 |
Arvid Norberg
|
680dab5a67
|
make 'snubbed' more sticky by only giving one request_timeout back when a new block is being received
|
2008-07-10 19:31:22 +00:00 |
Arvid Norberg
|
1bdb6afebd
|
fixes to previous connection timeout check-in
|
2008-07-10 10:58:30 +00:00 |
Arvid Norberg
|
d51bdc0ec0
|
rare request optimization
|
2008-07-09 18:01:00 +00:00 |
Arvid Norberg
|
22da6b5901
|
fixed bug where FAST pieces were cancelled when choking
|
2008-07-09 17:45:37 +00:00 |
Arvid Norberg
|
74fd7eea71
|
fixed alert posting typo
|
2008-07-09 17:40:03 +00:00 |
Arvid Norberg
|
fc3bb01587
|
ignore zero size piece messages
|
2008-07-09 17:37:38 +00:00 |
Arvid Norberg
|
2d099b090f
|
peer snubbing fix
|
2008-07-09 11:11:06 +00:00 |
Arvid Norberg
|
63d4e0d4a3
|
invariant check fix
|
2008-07-08 21:33:36 +00:00 |
Arvid Norberg
|
55a944c014
|
added a unwanted_block_alert
|
2008-07-08 18:41:04 +00:00 |
Arvid Norberg
|
5c749bcb3c
|
added base class for peer_alerts and turned more alerts into peer_alerts with more information about the peer that generated it
|
2008-07-08 09:30:10 +00:00 |
Arvid Norberg
|
8d4bea9f95
|
fixed invariant check that could be triggered since peer snubbing was introduced
|
2008-07-08 08:13:45 +00:00 |
Arvid Norberg
|
a20f1a8fa0
|
keeps track of the number of requests waiting in the send buffer and adjusts bandwidht priority accordingly in the bandwidth limiter
|
2008-07-08 00:03:08 +00:00 |
Arvid Norberg
|
f7042ca84a
|
improved piece timeout and peer snubbing logic
|
2008-07-07 12:04:06 +00:00 |
Arvid Norberg
|
e576babbb8
|
changed the alerts to have categories and to be filtered with a bitmask instead of having a severity and be filtered by a severity level.
|
2008-07-06 12:22:56 +00:00 |
Arvid Norberg
|
66a7f98d84
|
fixed missing torrent error state
|
2008-07-02 21:27:16 +00:00 |
Arvid Norberg
|
0e1d2ede70
|
fix invariant-check bug in peer_connection
|
2008-06-30 07:58:50 +00:00 |
Arvid Norberg
|
8f1abd9dbe
|
fix bug in previous check-in
|
2008-06-29 18:03:38 +00:00 |
Arvid Norberg
|
2ac5c13e6f
|
introduced a stricter timeout on piece requests and snubbing. exposed some more data about this through the peer_info. Fixes #40
|
2008-06-29 09:50:42 +00:00 |
Arvid Norberg
|
ae9f1e0465
|
fixed typo
|
2008-06-29 06:01:20 +00:00 |
Arvid Norberg
|
d1b2cd558e
|
moved peer time out logic to second tick
|
2008-06-29 05:35:48 +00:00 |
cg25
|
ff3e80c42f
|
Removed svn:executable property from {c,h}pp files in branches/RC_0_13 and
trunk.
|
2008-06-25 14:15:21 +00:00 |
Arvid Norberg
|
964e8b93d0
|
added option to deliberately corrupt data from certain peers, to test the case when hash fails occurs
|
2008-06-23 15:37:24 +00:00 |
Arvid Norberg
|
6db1b54304
|
simplified policy and optimized case when a piece fails hash check
|
2008-06-22 20:28:03 +00:00 |
Arvid Norberg
|
9a8fc4f713
|
self connection fixes
|
2008-06-16 13:54:14 +00:00 |
Arvid Norberg
|
9d1e77dc88
|
optimized away torrent::m_have_pieces (#62) and added some documentation on bitfield. The piece picker is now constructed with the torrent, but still freed when turned into a seed
|
2008-06-07 02:58:28 +00:00 |
Arvid Norberg
|
c883f4475c
|
saves statistics from the last second from peer connections that are disconnected. Partly fixes #339
|
2008-06-03 05:21:00 +00:00 |
Arvid Norberg
|
68c31e48dc
|
replaced vector<bool> with a custom bitfield type
|
2008-05-28 02:35:02 +00:00 |
Arvid Norberg
|
c460704a5f
|
streamlined class footprint by reducing padding
|
2008-05-19 02:52:32 +00:00 |
Arvid Norberg
|
111f5faecb
|
upload only extension
|
2008-05-18 05:59:47 +00:00 |
Arvid Norberg
|
91d6099a55
|
fixed issue with torrents with 0 pieces. Fixes #306
|
2008-05-15 02:29:26 +00:00 |
Arvid Norberg
|
f259e34f86
|
peer_connection fix for incoming connections
|
2008-05-12 10:10:39 +00:00 |
Arvid Norberg
|
2fbe53f880
|
assert fix
|
2008-05-12 06:31:54 +00:00 |
Arvid Norberg
|
971ead4a44
|
made redundant connction closing optional (defaults to on)
|
2008-05-12 06:25:53 +00:00 |
Arvid Norberg
|
068adcd9a9
|
indentation fix
|
2008-05-12 06:03:31 +00:00 |
Arvid Norberg
|
eabe9cad2d
|
improved plugin support
|
2008-05-12 03:05:27 +00:00 |
Arvid Norberg
|
e09457e4ab
|
take an estimate of the IP ACK traffic into account when rate limiting (allows setting rate limits closer to the capacity)
|
2008-05-05 17:08:14 +00:00 |
Arvid Norberg
|
d15573ecc2
|
disk receive buffer cleanup
|
2008-05-05 06:25:22 +00:00 |
Arvid Norberg
|
c7e6c04705
|
switched over to asio from boost-1.35
|
2008-05-03 16:05:42 +00:00 |
Arvid Norberg
|
441aacae32
|
fixed download bug affecting web seeds
|
2008-04-29 03:12:14 +00:00 |
Arvid Norberg
|
a4b69e5b2d
|
logging improvements
|
2008-04-20 17:17:58 +00:00 |
Arvid Norberg
|
d4cfa126aa
|
storage fixes
|
2008-04-12 22:08:07 +00:00 |
Arvid Norberg
|
42f55adcce
|
support for country lookup through GeoIP
|
2008-04-11 08:46:43 +00:00 |
Arvid Norberg
|
093d912e9a
|
receive buffer optimization. added receive_buffer_size and used_receive_buffer to peer_info. changed plugin api to make use of new disk_buffer_holder type
|
2008-04-10 10:03:23 +00:00 |
Arvid Norberg
|
2c77ae8307
|
fixed typo
|
2008-04-10 05:40:54 +00:00 |
Arvid Norberg
|
62daedeae0
|
fixed race condition when a torrent is removed while one of the connections is still in the connection queue
|
2008-04-09 20:12:52 +00:00 |
Arvid Norberg
|
5a6e21f484
|
peer_connection disconnect cleanup
|
2008-04-09 04:09:40 +00:00 |
Arvid Norberg
|
e329403619
|
removed exceptions from peer_connection
|
2008-04-07 08:39:01 +00:00 |
Arvid Norberg
|
04a9dd77b5
|
assert fix
|
2008-04-07 08:15:31 +00:00 |
Arvid Norberg
|
35fd9aec61
|
msvc build fixes and warning fixes
|
2008-04-05 21:18:27 +00:00 |
Arvid Norberg
|
57d75e120a
|
initial support for GeoIP (only AS mappings for now)
|
2008-04-05 04:53:22 +00:00 |
Arvid Norberg
|
0fcb204128
|
added peak rates to peer_info
|
2008-04-03 06:11:21 +00:00 |
Arvid Norberg
|
4161be867e
|
removed dht ping from peer_from_tracker. in trunk: implemented a rate limited DHT ping (once a second per torrent) and space optimized the peer structure
|
2008-04-01 17:38:19 +00:00 |
Arvid Norberg
|
1511f2f59b
|
removed calls to self() from inside constructors in peer connections
|
2008-03-31 04:46:24 +00:00 |
Arvid Norberg
|
e1eadab1b4
|
fixed memory leak on disk io failures
|
2008-03-24 02:33:42 +00:00 |
Arvid Norberg
|
537f21d1b9
|
connection rate improvement when using a half-open connections limit
|
2008-03-16 10:49:47 +00:00 |
Arvid Norberg
|
ab2354c9b4
|
small optimization to previous fix
|
2008-03-14 17:43:38 +00:00 |
Arvid Norberg
|
2cfbfd203f
|
made tests build and pass in trunk. fixed issues in trunk revealed by the tests. fixed failing torrent invariant check in trunk and rc0.13
|
2008-03-14 10:17:27 +00:00 |
Arvid Norberg
|
8132c6aad6
|
added option to control TOS byte in peer traffic
|
2008-03-12 16:58:23 +00:00 |
Arvid Norberg
|
5173c7fe31
|
more invariant check in peer connection
|
2008-03-12 08:36:22 +00:00 |
Arvid Norberg
|
a97be6937a
|
unchoker counts bytes instead of rates
|
2008-03-10 03:30:01 +00:00 |
Arvid Norberg
|
35c113c0cb
|
piece request fix + better logging of throttling
|
2008-02-27 20:37:41 +00:00 |
Arvid Norberg
|
333839c9b4
|
piece picker update
|
2008-02-18 03:07:14 +00:00 |
Arvid Norberg
|
f1ceb44dc4
|
fixed assert. #271
|
2008-02-17 20:40:21 +00:00 |
Arvid Norberg
|
cecd0dfcd2
|
added rtt estimation for outgoing connections
|
2008-02-09 22:42:56 +00:00 |
Arvid Norberg
|
8cf0510144
|
added disk cache for write operations
|
2008-02-08 10:22:05 +00:00 |
Arvid Norberg
|
a53473a65d
|
added new logging mode to log peer errors
|
2008-02-07 07:09:52 +00:00 |
Arvid Norberg
|
5d4d08b7ce
|
fix problem introduced with new piece picker
|
2008-02-05 05:57:32 +00:00 |
Arvid Norberg
|
1c82ef36d8
|
improved support for out-of-memory conditions
|
2008-02-05 05:51:05 +00:00 |
Arvid Norberg
|
c798ab30e1
|
rewrote the piece picker to be more cpu and memory efficient. replaces the concept of sequential-download-threshold with just a sequential download settings
|
2008-01-31 17:52:29 +00:00 |
Arvid Norberg
|
8b455be1d9
|
better exception handling and more invariant checks
|
2008-01-19 19:00:54 +00:00 |
Arvid Norberg
|
127d3e6ad5
|
bandwidth limiter fixes. proper priority that cannot starve connections
|
2008-01-17 17:40:46 +00:00 |
Arvid Norberg
|
c69fa07e2d
|
error handling fixes
|
2008-01-16 21:07:04 +00:00 |
Arvid Norberg
|
b19bf337bf
|
generalized peer read/write state
|
2008-01-13 23:46:43 +00:00 |
Arvid Norberg
|
f48ded8a54
|
fast extension fix
|
2008-01-13 09:33:00 +00:00 |
Arvid Norberg
|
616a48b591
|
fix to count loopback connections as local peers
|
2008-01-11 05:40:19 +00:00 |
Arvid Norberg
|
471d81394d
|
added invariant check
|
2008-01-10 22:44:32 +00:00 |
Arvid Norberg
|
3a727e99ff
|
expose more info through peer_info
|
2008-01-10 22:13:23 +00:00 |
Arvid Norberg
|
4420473b88
|
made send buffer watermark configurable
|
2008-01-08 01:16:30 +00:00 |
Arvid Norberg
|
1d6e0f5bf6
|
bandwidth request block size optimization
|
2008-01-07 04:47:20 +00:00 |
Arvid Norberg
|
0dfb129b57
|
another failcount update fix
|
2008-01-07 04:07:31 +00:00 |
Arvid Norberg
|
cf4036310b
|
changed the way connections are disconnected. improved logging. Does not depend on exceptions anymore
|
2008-01-07 01:10:46 +00:00 |
Arvid Norberg
|
4271eda751
|
correctly increase the failcounter when appropriate
|
2008-01-07 00:33:20 +00:00 |
Arvid Norberg
|
fcd2408f11
|
fast extension fix, added some logging for fast extension messages, improved test to catch the problem
|
2008-01-02 03:18:29 +00:00 |
Arvid Norberg
|
9d2c0e370e
|
fixed broken assert
|
2007-12-31 10:11:10 +00:00 |
Arvid Norberg
|
ddf16fb3bb
|
separated bandwidth_manager into bandwidht_limit and bandwidth_queue_entry and fixed problems related to #225
|
2007-12-31 09:41:50 +00:00 |
Arvid Norberg
|
cfe5c8962e
|
more asserts around send buffers and fixes potential race condition
|
2007-12-27 21:43:11 +00:00 |
Arvid Norberg
|
ba172954e6
|
accept have messages without having metadata and without having received a bitfield
|
2007-12-20 23:58:58 +00:00 |
Arvid Norberg
|
3b4cccf1dd
|
fixed broken assert
|
2007-12-20 23:53:03 +00:00 |
Arvid Norberg
|
d1311e2bb8
|
improved session logging
|
2007-12-19 21:36:54 +00:00 |
Arvid Norberg
|
9aa2ddec80
|
added a plugin 'smart_ban' that can ban peers sending bad data with higher accuracy
|
2007-12-18 06:04:54 +00:00 |
Arvid Norberg
|
456f8f8677
|
fix to bound check piece index before use in incoming_allowed_fast
|
2007-12-18 04:40:19 +00:00 |
Arvid Norberg
|
ac28fa7b62
|
some more asserts related to bandwidth manager
|
2007-12-14 18:02:06 +00:00 |
Arvid Norberg
|
1a280e31fa
|
cleanup. changed the connection map into a set of peer_connections. moved the policy object into the torrent (as opposed to being a pointer). Fixes issues with multiple peers on the same IP. Reduces some lookups.
|
2007-10-31 09:48:20 +00:00 |
Arvid Norberg
|
f054ae7c2d
|
made the handshake timeout configurable and defaults to 10 seconds
|
2007-10-23 00:19:28 +00:00 |
Arvid Norberg
|
fcc238e801
|
lowered piece timeout and sends cancels for pieces when a time out occurs
|
2007-10-22 20:58:42 +00:00 |
Arvid Norberg
|
d3bce762c5
|
added timeout logging in verbose logging mode
|
2007-10-22 04:56:09 +00:00 |
Arvid Norberg
|
a00f27b7ec
|
some extra peer logging + fix for previous invariant check
|
2007-10-18 04:18:09 +00:00 |
Arvid Norberg
|
b032c26bf0
|
adds invariant check to make sure pieces that are complete are also checked. adds a debug function in the disk_io_thread. Fixes a problem with a failing disk write that would not clear the block for re-download. Adds some extra session logging
|
2007-10-18 00:32:16 +00:00 |
Arvid Norberg
|
1699fa4652
|
fast reconnect fixes
|
2007-10-15 05:03:29 +00:00 |
Arvid Norberg
|
28113c9c42
|
parole mode improvement. Doesn't clear out the request queue when choked by a peer on parole anymore
|
2007-10-10 02:27:55 +00:00 |
Arvid Norberg
|
f5f658f8fd
|
fast extension fixes
|
2007-10-05 22:45:24 +00:00 |
Arvid Norberg
|
966800cd5b
|
replaced the assert macro to TORRENT_ASSERT instead of hi-jacking assert.
|
2007-10-05 00:30:00 +00:00 |
Arvid Norberg
|
2940d253c3
|
completed fast reconnect fix
|
2007-10-04 21:26:50 +00:00 |
Arvid Norberg
|
d29fbdc453
|
added tests for fast extension features + fixes
|
2007-10-04 09:32:09 +00:00 |
Arvid Norberg
|
51f12e774e
|
moved block_downloading_alert and block_finished_alert to debug level
|
2007-10-03 22:53:52 +00:00 |
Arvid Norberg
|
c9d245e9f1
|
handles case where a request in the allow fast set is rejected
|
2007-10-03 16:57:20 +00:00 |
Arvid Norberg
|
1cbe23667b
|
added check for valid allowed-fast messages
|
2007-10-01 01:12:00 +00:00 |
Arvid Norberg
|
b48948e231
|
changed the double send buffers to a chained buffer using iovec send operations. buffers are recycled (saves memory and cpu) and memory copies are avoided (saves cpu). More statistics is added to track buffer usage
|
2007-09-29 16:14:03 +00:00 |
Arvid Norberg
|
3b6aee6d86
|
switched out std::vector to use libtorrent::buffer as an optimization
|
2007-09-23 00:51:45 +00:00 |
Arvid Norberg
|
abbe3c774f
|
fixed problem with clashing connections when allowing multiple peers from the same IP
|
2007-09-19 06:05:14 +00:00 |
Arvid Norberg
|
33add5bb91
|
added a shorter timeout while waiting for a hanshake response from peers
|
2007-09-17 02:29:33 +00:00 |
Arvid Norberg
|
3a11c3bfad
|
broadcast socket and piece_picker fix
|
2007-09-15 20:20:07 +00:00 |
Arvid Norberg
|
bdd14cc155
|
added reject and suggest hooks to peer plugins
|
2007-09-14 03:38:38 +00:00 |
Arvid Norberg
|
80aee32972
|
fixed piece picker problem when a downloading piece could not be picked with the right speed category
|
2007-09-10 08:07:18 +00:00 |
Arvid Norberg
|
140fdae5b1
|
block_downloading_alert change
|
2007-09-06 18:33:15 +00:00 |
Arvid Norberg
|
d2706b3600
|
fixed #122
|
2007-09-03 22:57:09 +00:00 |
Arvid Norberg
|
c6b8b22679
|
replaced int64_t with size_type for portability
|
2007-09-03 21:20:28 +00:00 |
Arvid Norberg
|
6d40519e66
|
added support for piece picker to pick multiple pieces (previously it could only pick one piece tops). Made the web_peer_connection always try to make 1 MB requests at a time. added tests to the piece_picker unit test
|
2007-09-03 21:16:24 +00:00 |
Arvid Norberg
|
61c269efee
|
added timeout for interested peers that don't request once they're unchoked. Added support for suggest_piece
|
2007-09-01 07:38:10 +00:00 |
Arvid Norberg
|
fd42f3232b
|
upnp more logging and error recovery
|
2007-09-01 04:08:39 +00:00 |
Arvid Norberg
|
b6ee4fddbf
|
fixed uninitialized connection ticket
|
2007-08-25 14:52:48 +00:00 |
Arvid Norberg
|
23a20a24c1
|
added more asserts for choke/unchoke states and a peer_info flag to indicate a peer being optimistically unchoked
|
2007-08-21 17:45:28 +00:00 |
Arvid Norberg
|
e865852c74
|
fixes #136
|
2007-08-21 08:16:41 +00:00 |
Arvid Norberg
|
1a34478305
|
another (probably the final) attempt to fix to #133
|
2007-08-21 06:57:12 +00:00 |
Arvid Norberg
|
a91b4e9ec3
|
another attempt to fix to #133
|
2007-08-21 06:38:27 +00:00 |
Arvid Norberg
|
b8e48c061e
|
attempt to fix build errors on windows. #134
|
2007-08-21 04:46:17 +00:00 |
Arvid Norberg
|
c946afcfab
|
fixed #133
|
2007-08-21 04:11:00 +00:00 |
Arvid Norberg
|
a3d32dad4c
|
fixed bugs in unchoke change check-in
|
2007-08-16 22:13:35 +00:00 |
Arvid Norberg
|
4ac1ac8a1f
|
removed allocate_resources. switched to a global unchoker and connection distribution
|
2007-08-16 12:41:46 +00:00 |
Arvid Norberg
|
b62bb7944f
|
merged fast-extension => trunk. the fast extension branch is now closed
|
2007-08-14 17:47:48 +00:00 |
Arvid Norberg
|
f7b3433ff8
|
added check to disallow requests > 16kB (since the buffer pool now requires that limit)
|
2007-08-03 16:12:32 +00:00 |
Arvid Norberg
|
be1faccd1d
|
peer_connection fixes for earlier pending disk buffer size limit
|
2007-08-03 08:19:10 +00:00 |
Arvid Norberg
|
f2a8fe6df7
|
fixes to prevent incorrect asserts
|
2007-08-01 15:48:55 +00:00 |
Arvid Norberg
|
1973af7779
|
added alert messages for blocks finishing, pieces finishing and blocks being requested. patch by micah
|
2007-08-01 06:14:16 +00:00 |
Arvid Norberg
|
54aa76f940
|
exposed queued disk bytes in peer_info
|
2007-08-01 06:11:11 +00:00 |
Arvid Norberg
|
786d4e5f25
|
added a limit on how many bytes each connection can have pending in the disk write queue
|
2007-08-01 05:22:34 +00:00 |
Arvid Norberg
|
c536ac1990
|
peer_connections stats fix. test_sleep fix. improved test_swarm and test Jamfile
|
2007-07-06 20:17:36 +00:00 |
Arvid Norberg
|
a3e66a3efe
|
made the piece picker handle multi-request blocks better. fixes problem that might occur at the end of a torrent where the piece picker could take over blocks back and forth
|
2007-07-06 17:15:35 +00:00 |
Arvid Norberg
|
3bdf01778a
|
chamged peer representation from tcp::endpoint to policy::peer pointer in piece_picker's downloading piece. Saves memory, removes the need for lookup and improves the hash check fail/pass handling for closed connections
|
2007-07-04 02:16:49 +00:00 |
Arvid Norberg
|
e714e1aeba
|
improved bandwidth limiter and added a unit test for it
|
2007-07-02 23:48:06 +00:00 |
Arvid Norberg
|
0d7a208865
|
added more output to transfer tests and changed the data to be more easily debuggable + some code cleanup
|
2007-06-20 18:41:53 +00:00 |
Arvid Norberg
|
f05b06d4e5
|
added required operator on time_duration
|
2007-06-14 23:15:30 +00:00 |
Arvid Norberg
|
46bf2970fb
|
fixes to remote peer download rate etimation
|
2007-06-14 21:47:00 +00:00 |
Arvid Norberg
|
3b8670626a
|
merged back async_io branch into trunk
|
2007-06-10 20:46:09 +00:00 |
Arvid Norberg
|
2030420f9a
|
fix for previous peer download rate check-in
|
2007-06-07 00:53:48 +00:00 |
Arvid Norberg
|
a3a2217276
|
an approximate peer download rate is now in peer_info
|
2007-06-07 00:05:18 +00:00 |
Arvid Norberg
|
273f8bd921
|
merged back encryption branch to trunk
|
2007-06-06 00:41:20 +00:00 |
Arvid Norberg
|
7e540a8d53
|
made inactivity time-out configurable
|
2007-05-31 19:57:15 +00:00 |
Arvid Norberg
|
9fe77101ed
|
added support for lazy bitfields
|
2007-05-26 22:27:40 +00:00 |
Arvid Norberg
|
8679ee5916
|
have optimization is now optional, but on by default
|
2007-05-25 21:19:14 +00:00 |
Arvid Norberg
|
bb71832f5f
|
exposed some more peer info
|
2007-05-25 19:42:10 +00:00 |
Arvid Norberg
|
685f79b82f
|
option to ignore bandwidth limits for local peers. fixed some asserts when allowing multiple connections per IP
|
2007-05-25 17:06:30 +00:00 |
Arvid Norberg
|
cbd67ed729
|
added support for authentication in the url_parser and added a test for it
|
2007-05-22 20:44:18 +00:00 |
Arvid Norberg
|
3bfaaf1129
|
fixed a checked iterator assert
|
2007-05-16 18:21:08 +00:00 |
Arvid Norberg
|
13ca78e92b
|
#47. introduced parole mode for peers that fails the hash check.
|
2007-05-16 04:12:13 +00:00 |
Arvid Norberg
|
421d4ee81d
|
fixed recent send buffer optimization to work with metadata extension
|
2007-05-14 06:06:28 +00:00 |
Arvid Norberg
|
6faa11f7ab
|
optimized web_peer_connection to use less memory and replaced std::copy with std::memmove in peer_connection
|
2007-05-11 18:40:22 +00:00 |
Arvid Norberg
|
23ae2e12c8
|
fixed warning in peer_connection
|
2007-05-10 06:27:52 +00:00 |
Arvid Norberg
|
57439bcec8
|
send buffer heap optimization
|
2007-05-10 06:20:29 +00:00 |
Arvid Norberg
|
f39185bb21
|
optimized the read callback to loop and exhaust the read buffer from the socket instead of making another async read call. #43
|
2007-05-10 01:50:11 +00:00 |
Arvid Norberg
|
4956639171
|
piece picker optimization
|
2007-05-08 11:13:13 +00:00 |
Arvid Norberg
|
49bd69cad4
|
introduced a proper half open TCP connection limit. Also exposed the connection queue to let clients use the same connection limiter as libtorrent. UPnP connections and tracker connection are now also limited as well as peer connections and web seeds
|
2007-05-05 00:29:33 +00:00 |
Arvid Norberg
|
54805ca60b
|
added option to disable country resolving
|
2007-05-02 19:47:38 +00:00 |
Arvid Norberg
|
9f1a11aa50
|
regenerated documentation. fixed a few warnings. fixed a bug in recent check in in piece picker
|
2007-04-27 16:26:30 +00:00 |
Arvid Norberg
|
ee1681e2cb
|
added peer/piece categories to the piece picker. fixes #18
|
2007-04-27 00:27:37 +00:00 |
Arvid Norberg
|
00948e9fc4
|
first attempt to implement SOCKS5 and proper HTTP proxy support. fixes #22
|
2007-04-25 18:26:35 +00:00 |
Arvid Norberg
|
d9902d178f
|
applied shyam's memory optimization patch
|
2007-04-25 17:36:12 +00:00 |
Arvid Norberg
|
d43a6b80bf
|
added an abstraction layer or tcp sockets, to be able to support socks proxys
|
2007-04-23 21:36:21 +00:00 |
Arvid Norberg
|
8dd610bfbd
|
removed unnecessary fill of the have bitfield
|
2007-04-15 04:40:45 +00:00 |
Arvid Norberg
|
40804a829b
|
failcount is reset on a peer that successfully connects. documented max_failcount and min_reconnect_time. implemented seed optimization for piece_picker (inc_refcount_all and dec_refcount_all), ticket #17
|
2007-04-15 02:14:02 +00:00 |
Arvid Norberg
|
3d759e8936
|
fixes in connection policy. fixes #29. inserted more invariant checks in policy
|
2007-04-13 17:47:40 +00:00 |
Arvid Norberg
|
57eeba53a8
|
fix to previous checking
|
2007-04-13 01:57:16 +00:00 |
Arvid Norberg
|
0e5ce5dd9d
|
cleaned up policy a bit, moved the seed check in on_bitfield to be performed before the piece picker is updated
|
2007-04-13 01:53:25 +00:00 |
Arvid Norberg
|
3293bf9b6e
|
the seed flag in the peer struct is updated when connected to a seed (will avoid trying to reconnect to a seed when we're also a seed)
|
2007-04-13 00:22:03 +00:00 |
Arvid Norberg
|
52623405f0
|
improved unchoking, connecting and disconnecting logic in policy. seems to fix #29
|
2007-04-12 10:21:55 +00:00 |
Arvid Norberg
|
3ed24da320
|
added source to peer_info, which is a bitmask of the sources where the peer has been acquired from
|
2007-04-10 21:23:13 +00:00 |
Arvid Norberg
|
d88ffcc0e4
|
removed some more unecessary boost.date_time dependencies
|
2007-04-10 07:52:58 +00:00 |
Arvid Norberg
|
306d015924
|
added a timer abstraction and replaced the use of boost.date_time. the timers used now are QueryPerformanceCounter on windows, mach_absolute_time on darwin and currently falls back on boost.date_time on other platforms. This has the advantage of being a monotonic clock, and also slightly more efficient
|
2007-04-04 22:27:36 +00:00 |
Arvid Norberg
|
36ca0eb3ba
|
addition to previous peer connection download/upload limit fix
|
2007-04-02 23:10:11 +00:00 |
Arvid Norberg
|
ed3bb7e4e8
|
fixed peer connection rate limits
|
2007-04-02 22:25:58 +00:00 |
Arvid Norberg
|
ec2962dd62
|
extensions are now instantiated for web seeds as well
|
2007-04-02 20:00:24 +00:00 |
Arvid Norberg
|
fc46a731eb
|
modified and enabled invariant checking for piece_picker
|
2007-03-29 00:52:16 +00:00 |
Arvid Norberg
|
0344cadd69
|
improved logging of bitfields
|
2007-03-28 20:54:51 +00:00 |
Arvid Norberg
|
e8eb1ca96c
|
prioritizes upload bandwidth to peers we are interested in and that have unchoked us
|
2007-03-28 19:11:30 +00:00 |
Arvid Norberg
|
f1af5dc637
|
changes to ut_pex, added support for seed flag in pex messages
|
2007-03-28 01:06:15 +00:00 |
Arvid Norberg
|
29e43d7f62
|
added http_connection and a simple xml parser, used by a upnp implementation that still isn't finished
|
2007-03-27 07:04:31 +00:00 |
Arvid Norberg
|
20e38bc42b
|
peer interest flag is now updated when priority is changed. fixes in piece_picker
|
2007-03-21 02:09:50 +00:00 |
Arvid Norberg
|
8957b64c04
|
prepared for precompiled headers support. fixed issue where storage didn't lock the session properly. fixed typo in natpmp.cpp
|
2007-03-17 17:15:16 +00:00 |
Arvid Norberg
|
4ac08f393a
|
simplified the piece picker by initializing it properly in its constructor. Removed natpmp reporting port map success when removing mappings. fix where incoming connections before the files were completely checked would cause an assert.
|
2007-03-16 23:28:26 +00:00 |
Arvid Norberg
|
ecaa3068d5
|
added natpmp support. bumped version number to 0.13. added piece priority support to the piece picker. optmized and simplified the piece picker in the process.
|
2007-03-15 22:03:56 +00:00 |
Arvid Norberg
|
c40a75f844
|
IPv6 fixes
|
2007-02-27 17:21:46 +00:00 |
Arvid Norberg
|
fcc9c49608
|
fixed issue with metadata-less torrents and their statistics updates
|
2007-02-25 05:20:14 +00:00 |
Arvid Norberg
|
889ad70cee
|
fixes for metadata-less torrents, and fixes for peer requests
|
2007-02-15 03:03:50 +00:00 |
Arvid Norberg
|
f795be7acf
|
made the dht be a fallback by default, fixed glitch in earlier fix to make sure block requests are sent properly, fixed problem in peer_connection::second_tick if the piece picker was removed because of the torrent becoming a seed
|
2007-02-12 09:20:49 +00:00 |
Arvid Norberg
|
a3bf238143
|
fixed typo in previous checkin and updated AUTHORS
|
2007-02-12 05:56:29 +00:00 |
Arvid Norberg
|
98b92e3f02
|
fixed problems in the network layer that made web seeds fail some times. prepared for proxy support in peer connections. worked on the http seeding. added support for web seeds in make_torrent tool
|
2007-02-12 05:46:29 +00:00 |
Arvid Norberg
|
d0ebdb2dee
|
added prioritization in the bandwidth_manager (throttler), web seeds now have lower priority when being handed bandwidth. torrent_reply_alert now includes the number of peers returned from the tracker. updated Changelog
|
2007-02-01 07:33:04 +00:00 |
Arvid Norberg
|
05f4ce5b6c
|
fixed potetial deadlock in bandwidth manager. Fixed http-tracker requests that are sensitive to existing arguments in url (avoids duplicates and doesn't replace arguments)
|
2007-01-30 17:56:42 +00:00 |
Arvid Norberg
|
f14c84b01e
|
fixes in DHT to make it work when the number of transaction slots are full (very rare case). Added a feature to (optionally) resolve the countries of peers and updated the docs (see peer_info::country).
|
2007-01-29 07:39:33 +00:00 |
Arvid Norberg
|
87f7b186b0
|
replaced the bandwidth throttling code with a leaky bucket for better accuracy
|
2007-01-10 15:02:25 +00:00 |
Arvid Norberg
|
0f3874028b
|
added btgdaemon to identify client and applied wojci's patch to add num_connections() and num_uploads() to session
|
2007-01-01 21:04:30 +00:00 |
Arvid Norberg
|
373b18233a
|
reverted some bad changes
|
2007-01-01 11:54:31 +00:00 |
Arvid Norberg
|
45864b15ec
|
fixed incorrect assert in bytes_done()
|
2006-12-31 14:48:18 +00:00 |
Arvid Norberg
|
a78ef76592
|
commented out an expensive invariant check. Fixed http parser to accept responses with only LF (and not CRLF)
|
2006-12-29 23:40:56 +00:00 |
Arvid Norberg
|
d50ab33855
|
added clients to identify_client and a minor fix
|
2006-12-27 15:14:17 +00:00 |
Arvid Norberg
|
c69479a166
|
fixed the cause of an inconsistency in the piece picker and the torrent
|
2006-12-22 00:45:43 +00:00 |
Arvid Norberg
|
f83db0a423
|
consistency fixes related to shutting down
|
2006-12-21 22:20:28 +00:00 |
Arvid Norberg
|
755d9f5967
|
since the web seed downloader now calls incoming_piece with correct block sizes, incoming piece can be reverted to not allow incorrect block sizes
|
2006-12-21 11:37:03 +00:00 |
Arvid Norberg
|
1b46fb9e1b
|
fixed an assert in teh web seed downloader
|
2006-12-21 02:44:00 +00:00 |
Arvid Norberg
|
c32dd33a2d
|
commented out an expensive invariant check
|
2006-12-18 01:24:35 +00:00 |
Arvid Norberg
|
3a7eeb3966
|
rewrote most of the web seed downloader to report its progress accurately (to prevent inconsistencies in the core). Not well tested with multi file torrents yet
|
2006-12-18 01:23:30 +00:00 |
Arvid Norberg
|
2ebff76caa
|
fixes
|
2006-12-16 03:55:20 +00:00 |
Arvid Norberg
|
80bcbdf044
|
fixed typo
|
2006-12-16 03:36:33 +00:00 |
Arvid Norberg
|
cf4aa6d6e1
|
added more asserts related to the invariance between the peer connections' request queue and the piece picker
|
2006-12-16 03:34:56 +00:00 |
Arvid Norberg
|
400a2fe82a
|
added more asserts related to the invariance between the peer connections' request queue and the piece picker
|
2006-12-16 02:19:53 +00:00 |
Arvid Norberg
|
13facbdb83
|
added a strand for all async operations for thread safety
|
2006-12-15 17:47:21 +00:00 |
Arvid Norberg
|
79ebcf5dd8
|
modified the hueristic for taking over blocks slightly, added logging
|
2006-12-15 10:42:56 +00:00 |
Arvid Norberg
|
1271334f95
|
fix
|
2006-12-15 09:38:52 +00:00 |
Arvid Norberg
|
16b7898de9
|
added some asserts
|
2006-12-15 02:26:11 +00:00 |
Arvid Norberg
|
9e27e33c99
|
added some asserts and updated changelog
|
2006-12-14 16:12:31 +00:00 |
Arvid Norberg
|
fcf211378a
|
fixed http_tracker_connection to finally use the http-parser class (which also web_seed_connection uses). also fixed a case sensitivity issue with http header names.
|
2006-12-12 02:28:53 +00:00 |
Arvid Norberg
|
fcf20c7c0c
|
invariant check fixes
|
2006-12-11 15:43:27 +00:00 |
Arvid Norberg
|
f0e97d5aff
|
fixes and asserts partly related to the freeing of the piece picker
|
2006-12-11 12:48:33 +00:00 |
Arvid Norberg
|
d10f06059d
|
fix related to the recent piece_picker optimization
|
2006-12-05 23:53:56 +00:00 |
Arvid Norberg
|
e49934f236
|
fixed typo
|
2006-12-04 20:46:38 +00:00 |
Arvid Norberg
|
ef235faede
|
added MLDonkey to identify client, fixed a problem introduced with the recent piece_picker optimization, choked peers should now waste less bandwidth in the quota management.
|
2006-12-04 20:42:47 +00:00 |
Arvid Norberg
|
90feac8126
|
deallocates the piece picker when seeding, to free up unused memory
|
2006-12-04 12:20:34 +00:00 |
Arvid Norberg
|
c5cf290f49
|
more quota management fixes and more stats for web seeds
|
2006-11-24 14:22:52 +00:00 |
Arvid Norberg
|
8e289bb233
|
improved logging and fixed glitch in quota management.
|
2006-11-21 15:51:28 +00:00 |
Arvid Norberg
|
68e8ea35ea
|
added logging of upload and download statistics, revised some of the quota management, added support for sessions to allocate_resources (patch by wojci)
|
2006-11-20 21:03:58 +00:00 |
Arvid Norberg
|
c52de08421
|
added more logging and modified the resource allocation algorithm. A new, looser, upload and download bandwidth limiter is now used, in order to be able to use more of the available bandwidth
|
2006-11-19 15:29:58 +00:00 |
Arvid Norberg
|
01f1d01d58
|
improved logging, fixed option to allow multiple connections from the same IP
|
2006-11-15 21:39:58 +00:00 |
Arvid Norberg
|
e35fc5c4be
|
refactored extensions and added a plugin interface. fixed file.cpp for windows
|
2006-11-14 00:08:16 +00:00 |
Arvid Norberg
|
f0519e86e8
|
separated session from session_impl and made a real pimpl-class of it. Introduced the possibility to destruct the sessions async.
|
2006-10-11 14:02:21 +00:00 |
Arvid Norberg
|
5ef57265bf
|
first version with DHT support. Limited pipelining used by url-seeds. Fixed one configuration problem on FreeBSD.
|
2006-08-01 15:27:08 +00:00 |
Arvid Norberg
|
00df2b5bc3
|
added build notes for vs.net 2005, removed old code from ip_filter.cpp, fixed problem where the stats could become incorrect in case of very high cpu load, added asserts in storage::read() to make sure one is not trying to read out of bounds.
|
2006-07-26 10:21:25 +00:00 |
Arvid Norberg
|
4403eac97b
|
fixed bugs reported by Massaroddel. Tracker request peer-count could be incorrect. Empty files were not created in full allocation mode.
|
2006-07-08 19:41:39 +00:00 |
Arvid Norberg
|
175fb8770b
|
added peer_timeout and urlseed_timeout to session_settings, they control the timeout for peers and web seeds respectively. Added BitSlug to the projects page. Added more debug logging when resolving web seed hostnames. Updated documentation.
|
2006-06-28 23:27:44 +00:00 |
Arvid Norberg
|
d3ba5edd6d
|
fixed a long standing (quite rare) bug, thanks to Massaroddel. Made the tests clean up their temporary files.
|
2006-06-24 22:30:59 +00:00 |
Arvid Norberg
|
8fafa58c1f
|
added per file progress, added patch suggested by Tianhao Qui regarding unchoking when a peer becomes uninterested. Updated documentation and removed block quotes around bullet lists.
|
2006-06-11 23:24:36 +00:00 |
Arvid Norberg
|
3d06c0636a
|
*** empty log message ***
|
2006-05-29 17:50:57 +00:00 |
Arvid Norberg
|
94628fa78d
|
fixed race condition in peer_connection, fixed assert in torrent destructor, updated tests
|
2006-05-28 19:03:54 +00:00 |
Arvid Norberg
|
262e97f21d
|
updated to latest version of asio. fixed a problem with low resolution timers in the second_tick code found by Massaroddel.
|
2006-05-20 15:30:40 +00:00 |
Arvid Norberg
|
0b529e8f96
|
added a setting for max outstanding requests, and a limit for BitComet since it's known to have a very low limit, also added an extension header to specify it. Fixed another unnecessary delay spotted by Tianhao Qiu. Cleaned up the logging class a bit. Fixed a bug that would cause an assert when removing a torrent queued for checking.
|
2006-05-14 22:30:05 +00:00 |
Arvid Norberg
|
73b1c5c9b8
|
cleaned up comments, added some asserts, added setup_send() as proposed by Tianhao Qiu to speed up connection attempts
|
2006-05-01 23:34:37 +00:00 |
Arvid Norberg
|
d63ceac56c
|
fixed a bug in client_test. fixed some problems related to the previous buffer bug fix. all tests pass now.
|
2006-04-30 10:28:45 +00:00 |
Arvid Norberg
|
18cb6736ea
|
fixed a serious bug where corrupt messages could be sent out.
|
2006-04-30 00:39:18 +00:00 |
Arvid Norberg
|
d1c33c0d2b
|
windows fixes
|
2006-04-27 00:39:21 +00:00 |
Arvid Norberg
|
41810b1166
|
merged back the asio development branch
|
2006-04-25 21:04:48 +00:00 |
Arvid Norberg
|
410af930a7
|
no longer expects requests to be handled in fifo order
|
2006-02-23 10:53:07 +00:00 |
Arvid Norberg
|
564ae78012
|
fixed bug caused when sockets were bound to non-local interface
|
2006-01-06 20:20:20 +00:00 |
Arvid Norberg
|
2e851505f8
|
merged fixes from release branch
|
2005-11-22 00:18:39 +00:00 |