Arvid Norberg
|
3cf34e3a91
|
greatly optimised memory usage for peer list
|
2009-04-30 05:49:46 +00:00 |
Arvid Norberg
|
aba5b2e9d0
|
dropped some iostream dependencies
|
2009-04-04 09:52:25 +00:00 |
Arvid Norberg
|
1a6d2f86b9
|
add compile time option to disable IPv6 support
|
2009-03-31 07:45:54 +00:00 |
Arvid Norberg
|
31054ef069
|
first implementation of set_piece_deadline
|
2009-03-17 09:34:44 +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
|
2623037482
|
local peers are excempt from unchoke slots. #469
|
2009-01-28 06:14:21 +00:00 |
Arvid Norberg
|
952ed687cd
|
made session stats config build
|
2008-12-26 07:00:21 +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
|
3412c0f709
|
added option to set peers in a state where it doesn't download
|
2008-11-06 08:34:56 +00:00 |
Arvid Norberg
|
392dbb71da
|
more fixes to avoid unwanted exceptions
|
2008-10-23 04:10:23 +00:00 |
Arvid Norberg
|
8995edead0
|
policy iterator fix
|
2008-10-17 07:32:46 +00:00 |
Arvid Norberg
|
ad4d80cc6b
|
removed commented out code
|
2008-10-15 02:21:41 +00:00 |
Arvid Norberg
|
00415608f6
|
added assert in policy
|
2008-09-25 18:35:28 +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
|
92ed7fb364
|
fixed metadata extension issues
|
2008-08-29 17:21:56 +00:00 |
Arvid Norberg
|
72b99059e7
|
optimized policy::peer
|
2008-07-14 11:15:35 +00:00 |
Arvid Norberg
|
c5af2c2eaf
|
moved tracker announces into a timer instead of polling every second. Added state to properly send complete, started and stopped events
|
2008-07-12 08:25:19 +00:00 |
Arvid Norberg
|
63d4e0d4a3
|
invariant check fix
|
2008-07-08 21:33:36 +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 |
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
|
6db1b54304
|
simplified policy and optimized case when a piece fails hash check
|
2008-06-22 20:28:03 +00:00 |
Arvid Norberg
|
18809681be
|
fix bug in self connect detection
|
2008-06-18 13:31:41 +00:00 |
Arvid Norberg
|
9a8fc4f713
|
self connection fixes
|
2008-06-16 13:54:14 +00:00 |
Arvid Norberg
|
41f241b476
|
min reconnect time fix
|
2008-06-16 07:46:40 +00:00 |
Arvid Norberg
|
af477fa266
|
fixed connect candidate assert
|
2008-06-13 04:50:02 +00:00 |
Arvid Norberg
|
76ee7b6297
|
fixed connect candidate counter
|
2008-06-07 14:22:24 +00:00 |
Arvid Norberg
|
9f5fa96cad
|
fixed bug related to m_have_piece optimization. Renamed num_pieces() to num_have() to avoid confusion
|
2008-06-07 14:03:21 +00:00 |
Arvid Norberg
|
e0987022cc
|
fixed typo
|
2008-05-30 07:58:49 +00:00 |
Arvid Norberg
|
fd98434c97
|
peer list optimization and introduced hard limit on peer list size
|
2008-05-28 18:25:48 +00:00 |
Arvid Norberg
|
68c31e48dc
|
replaced vector<bool> with a custom bitfield type
|
2008-05-28 02:35:02 +00:00 |
Arvid Norberg
|
f2ac4db1af
|
changed the optimistic disconnect logic to be more efficient and configurable
|
2008-05-12 05:17:11 +00:00 |
Arvid Norberg
|
a555fff07b
|
seed count fix in policy
|
2008-05-07 07:35:36 +00:00 |
Arvid Norberg
|
c7e6c04705
|
switched over to asio from boost-1.35
|
2008-05-03 16:05:42 +00:00 |
Arvid Norberg
|
00b935150a
|
fix for debug iterators
|
2008-04-24 17:09:26 +00:00 |
Arvid Norberg
|
854affdd92
|
compare peer updates
|
2008-04-24 16:34:43 +00:00 |
Arvid Norberg
|
33ed6f4720
|
fixed typo
|
2008-04-24 16:12:24 +00:00 |
Arvid Norberg
|
228e225489
|
scans at most 300 peers when finding a connect candidate. Supposedly fixes cpu spikes on large swarms
|
2008-04-24 07:49:23 +00:00 |
Arvid Norberg
|
b73112682c
|
client test ui updates
|
2008-04-24 04:17:54 +00:00 |
Arvid Norberg
|
23732bafce
|
connect candidate counter fix
|
2008-04-20 00:19:31 +00:00 |
Arvid Norberg
|
04a9dd77b5
|
assert fix
|
2008-04-07 08:15:31 +00:00 |
Arvid Norberg
|
507b812ae8
|
policy invariant check update
|
2008-04-07 03:23:54 +00:00 |
Arvid Norberg
|
2fe729c9f5
|
removed dependencies on exceptions from policy
|
2008-04-07 01:29:21 +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
|
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
|
45a7329d5c
|
added alert for when the client's external IP is received
|
2008-03-29 22:45:55 +00:00 |
Arvid Norberg
|
2014e312b1
|
exposed connection_candidates in torrent_status and made a small optimization to not attempt to connect peers on swarms that don't have any connect candidates
|
2008-03-29 18:47:24 +00:00 |
Arvid Norberg
|
6728314406
|
cleaned up a rule in disconnect_one_peer
|
2008-03-04 03:52:08 +00:00 |
Arvid Norberg
|
9d3b60edb7
|
added support to bind outgoing connections to specific ports (might be useful to do traffic shaping)
|
2008-02-28 07:34:07 +00:00 |
Arvid Norberg
|
cf5c9344ab
|
made peer connection order depend on ones external IP or be random (if we don't know our external IP). Should fix #281
|
2008-02-28 03:09:34 +00:00 |
Arvid Norberg
|
601b7571f5
|
added asserts to piece picker around num_peers()
|
2008-02-11 06:52:40 +00:00 |
Arvid Norberg
|
8cf0510144
|
added disk cache for write operations
|
2008-02-08 10:22:05 +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
|
8a47c849ce
|
fix in the smart_ban to not use invalid pointers
|
2007-12-27 20:57:58 +00:00 |
Arvid Norberg
|
4b7eaf8cbe
|
fixed connect candidate logic, to prefer peers with less failures
|
2007-12-24 08:17:32 +00:00 |
Arvid Norberg
|
91ecbb4b23
|
prioritizes local peers over non-local ones when finding connect candidates
|
2007-12-22 18:20:23 +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
|
1699fa4652
|
fast reconnect fixes
|
2007-10-15 05:03:29 +00:00 |
Arvid Norberg
|
c6c77d8efc
|
fixed so that peers only get one fast-reconnect
|
2007-10-12 01:12:30 +00:00 |
Arvid Norberg
|
64056a667f
|
fixed encrypted support flag bug
|
2007-10-11 22:02:00 +00:00 |
Arvid Norberg
|
bbd170562e
|
policy invariant check fix
|
2007-10-06 21:15:44 +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
|
4cab49cbdf
|
saves banned peers in resume data
|
2007-10-03 17:37:15 +00:00 |
Arvid Norberg
|
5c3a73ccb9
|
fixed another policy bug
|
2007-10-03 00:55:06 +00:00 |
Arvid Norberg
|
fd180c4294
|
fixed bug in policy
|
2007-10-02 20:30:53 +00:00 |
Arvid Norberg
|
3dcae188fb
|
policy now has a map of peers instead of a flat list, makes it more efficient to do lookups
|
2007-10-02 19:11:04 +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
|
1964cc0596
|
policy fix when allowing multiple connections per IP
|
2007-09-22 16:24:26 +00:00 |
Arvid Norberg
|
338eedf961
|
added storage assert, fixed policy assert
|
2007-09-19 19:55:11 +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
|
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
|
7cd29ca371
|
piece picker updates and more tests
|
2007-09-05 23:32:05 +00:00 |
Arvid Norberg
|
24b57d62c8
|
piece picker fixes and optimizations (requires more tests in unit tests)
|
2007-09-05 21:21:11 +00:00 |
Arvid Norberg
|
d2706b3600
|
fixed #122
|
2007-09-03 22:57:09 +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
|
bce55bc149
|
removed expensive invariant checks
|
2007-08-27 05:32:47 +00:00 |
Arvid Norberg
|
e074b0a977
|
removed too expensive invariant checks
|
2007-08-21 19:18:06 +00:00 |
Arvid Norberg
|
847f96d9c3
|
made policy::has_connection not throw
|
2007-08-21 19:04:27 +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
|
a3d4b1bdd9
|
fixed build problems on windows
|
2007-08-21 07:33:06 +00:00 |
Arvid Norberg
|
6c50adabfc
|
updated piece_picker fix and added another invariant check to policy
|
2007-08-21 01:17:42 +00:00 |
Arvid Norberg
|
88cd663895
|
piece_picker fix
|
2007-08-17 19:28:21 +00:00 |
Arvid Norberg
|
d00ce3b28b
|
optimized policy and removed #warning
|
2007-08-16 23:53:14 +00:00 |
Arvid Norberg
|
9315851cdf
|
fixed assert in request_a_block. Fixes #125
|
2007-08-16 19:36:33 +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
|
8387240b31
|
more asserts, piece_picker fixes, debug-iterator fixes
|
2007-08-03 06:13:26 +00:00 |
Arvid Norberg
|
f67deba30e
|
fixed #81
|
2007-07-26 07:04:35 +00:00 |
Arvid Norberg
|
9bdf2a9c8d
|
fixed invariant check in policy
|
2007-07-10 17:25:10 +00:00 |
Arvid Norberg
|
e395747e35
|
fixed piece picker bug
|
2007-07-08 20:43:44 +00:00 |
Arvid Norberg
|
82e1160214
|
introduced a non-rarest-first option to the piece picker that is used to pick the very first pieces in a torrent
|
2007-07-07 01:26:30 +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
|
3c69e3b2cb
|
updated asserts
|
2007-07-04 16:15:46 +00:00 |
Arvid Norberg
|
b20270d243
|
added more asserts related to recent downloading_piece optimization and fixed a translation problem to the public interface
|
2007-07-04 15:46:10 +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
|
3b8670626a
|
merged back async_io branch into trunk
|
2007-06-10 20:46:09 +00:00 |
Arvid Norberg
|
6447a074eb
|
fixes to allow-multiple-connections-per-ip and a unit test that run a swarm of 3 local peers
|
2007-06-08 23:02:31 +00:00 |
Arvid Norberg
|
a7ad108e8a
|
made the unchoke interval configurable
|
2007-06-07 22:37:58 +00:00 |
Arvid Norberg
|
273f8bd921
|
merged back encryption branch to trunk
|
2007-06-06 00:41:20 +00:00 |
Arvid Norberg
|
d0412a2244
|
added port filter for outgoing connections
|
2007-06-01 01:05:57 +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
|
13ca78e92b
|
#47. introduced parole mode for peers that fails the hash check.
|
2007-05-16 04:12:13 +00:00 |
Arvid Norberg
|
f5c449837f
|
introduced an extra invariant check in policy to make sure peers are unique
|
2007-05-12 20:25:44 +00:00 |
Arvid Norberg
|
b39f6bccc0
|
policy cleanup
|
2007-05-07 16:24:08 +00:00 |
Arvid Norberg
|
508dfd722a
|
cleaned up policy a bit and the country code list
|
2007-05-05 22:55:34 +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
|
56a4b8412a
|
restored the faster connection behavior
|
2007-05-03 01:49:14 +00:00 |
Arvid Norberg
|
77c141fd6d
|
fix to previous connection queue change
|
2007-05-02 19:50:07 +00:00 |
Arvid Norberg
|
04e41cf702
|
improved connection queue handling slightly. Will require further improvements
|
2007-05-02 17:38:37 +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
|
e49c49c892
|
fixes #35
|
2007-04-17 23:06:00 +00:00 |
Arvid Norberg
|
fceaa8f79e
|
introduced failcount and retry time settings for peers
|
2007-04-14 21:47:07 +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
|
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
|
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
|
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
|
f2778d52d1
|
introduced failcounter for peers, increased timeout for peer info (such as being banned). Peers that fails 4 times are removed from the peer-list
|
2007-03-28 19:56:53 +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
|
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
|
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
|
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
|
45864b15ec
|
fixed incorrect assert in bytes_done()
|
2006-12-31 14:48:18 +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
|
90feac8126
|
deallocates the piece picker when seeding, to free up unused memory
|
2006-12-04 12:20:34 +00:00 |
Arvid Norberg
|
4f68ca55dc
|
fixed incorrect change in earlier check-in
|
2006-11-30 20:40:41 +00:00 |
Arvid Norberg
|
947df91b20
|
improved support for multiple connections per ip
|
2006-11-30 11:56:19 +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
|
51e3261dd0
|
the file pool has been moved to the session and its size can be controlled via session_settings. Added untested option to allow multiple connections from the same IP.
|
2006-11-14 15:53:38 +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
|
861220b233
|
fixed prioritization on connections, incomming connections are now prioritized over outgoing pending connections.
|
2006-09-28 13:27:34 +00:00 |
Arvid Norberg
|
bdf1bbc8f4
|
changed the file format for storing the DHT routing table to support IPv6. Changed the address used to be IPv4-IPv6 independent (ip_filter still onlt works with IPv4). Added default boost-build features to the building documentation. Completed the jamfile's support for building without DHT support. Updated documentation with these changes.
|
2006-09-01 03:06:00 +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
|
1a081561c4
|
fixed bug in tracker_connection (spotted by tianhao qui) and fixed a performance problem in the piece picker that takes over blocks from other peers (also spotted by tianhao qui)
|
2006-06-17 01:29:36 +00:00 |
Arvid Norberg
|
b06b7fdf7b
|
added block requesting fix
|
2006-06-14 21:08:55 +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
|
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
|
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 |