Arvid Norberg
|
20d4279177
|
optimized piece picking to not cause busy loops in some end-game modes
|
2010-12-18 10:19:34 +00:00 |
Arvid Norberg
|
f4746f4090
|
verbose logging cleanup
|
2010-12-01 04:22:03 +00:00 |
Arvid Norberg
|
e5f980d80d
|
merged uTP branch into trunk (yay)
|
2010-11-29 01:33:05 +00:00 |
Arvid Norberg
|
8737a339c8
|
refactored verbose peer logging to use format strings
|
2010-10-31 22:12:26 +00:00 |
Arvid Norberg
|
e4de1fc8b1
|
graceful disconnect mode which finishes transactions before disconnecting peers
|
2010-10-30 08:36:18 +00:00 |
Arvid Norberg
|
d737dd051d
|
added support for chunked encoding for web seeds
|
2010-10-27 06:39:18 +00:00 |
Arvid Norberg
|
a7c87e14dd
|
added functions to query an individual peer's upload and download limit
|
2010-10-01 16:09:22 +00:00 |
Arvid Norberg
|
b6f92aa981
|
added initial support for share-mode
|
2010-09-05 16:01:36 +00:00 |
Arvid Norberg
|
18a3d545b0
|
fixed potential hang issue when receiving faster than we can handle the incoming messages
|
2010-08-28 19:44:50 +00:00 |
Arvid Norberg
|
9a9c121ec0
|
fixed assert typo
|
2010-07-15 06:31:39 +00:00 |
Arvid Norberg
|
4c6be42b74
|
added feature to not count downloaded bytes from web seeds in stats
|
2010-07-15 06:27:44 +00:00 |
Arvid Norberg
|
4e576f93fd
|
removed the session mutex for improved performance
|
2010-07-14 04:16:38 +00:00 |
Arvid Norberg
|
69001e6a6b
|
fixed bug in metadata extensions combined with encryption
|
2010-06-18 05:44:08 +00:00 |
Arvid Norberg
|
b882914461
|
refactored socket reading code to not use async. operations unnecessarily
|
2010-06-18 04:43:20 +00:00 |
Arvid Norberg
|
23ba8c8a72
|
fixed synchronization issue between download queue and piece picker
|
2010-05-13 06:29:33 +00:00 |
Arvid Norberg
|
c26d1631e0
|
fix bug in web and http seeds shutdown
|
2010-04-09 05:51:31 +00:00 |
Arvid Norberg
|
5224e0c340
|
complete_ago extension
|
2010-03-19 18:39:51 +00:00 |
Arvid Norberg
|
e3a9578e2d
|
fixed some shadow warnings
|
2010-03-06 07:16:39 +00:00 |
Arvid Norberg
|
54b4bc7754
|
better rate limiter fix
|
2010-02-21 01:32:57 +00:00 |
Arvid Norberg
|
cead1b5780
|
rate limiter fix for metadata extension
|
2010-02-20 18:56:53 +00:00 |
Arvid Norberg
|
348cd22b9a
|
fixed typo
|
2010-02-09 04:58:16 +00:00 |
Arvid Norberg
|
fb47469834
|
experimental support for the BitTyrant choking algorithm
|
2010-02-09 03:04:41 +00:00 |
Arvid Norberg
|
3bc40b9980
|
fix builds for all combinations of stats and disk stats
|
2010-01-31 20:32:12 +00:00 |
Arvid Norberg
|
ca20d2d600
|
fixed broken build
|
2010-01-31 20:22:35 +00:00 |
Arvid Norberg
|
3691ca847b
|
fixed missing include
|
2010-01-20 03:01:39 +00:00 |
Arvid Norberg
|
c9b594fde1
|
support sending suggest messages based on what's in the read cache. support 'explicit read cache'
|
2010-01-15 16:45:42 +00:00 |
Arvid Norberg
|
cdf459dad5
|
only keep one outstanding duplicate request per peer
|
2009-12-25 16:52:57 +00:00 |
Arvid Norberg
|
f612a07b06
|
more header dependency fixes and some configure header cleanup
|
2009-12-09 09:55:19 +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
|
e43340c961
|
made it possible to build without RTTI
|
2009-11-02 20:43:38 +00:00 |
Arvid Norberg
|
dcd8bb6718
|
move stats instrumentation to .cpp file to fix header dependency issue
|
2009-10-28 19:56:18 +00:00 |
Georg Rudoy
|
e8327c96b1
|
Build fixes.
|
2009-09-17 11:22:18 +00:00 |
Arvid Norberg
|
0f62beebb3
|
improved compile time by moving rate limiter implementation to a cpp file and making it a non-template
|
2009-09-16 04:41:35 +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
|
ddbb35cf7d
|
fixed bug in connect candidate counter
|
2009-09-09 16:42:52 +00:00 |
Arvid Norberg
|
7933132cd9
|
fixed assert when built with disk stats
|
2009-08-05 19:02:51 +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
|
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
|
76db4627f6
|
another pending_bytes fix
|
2009-07-01 04:14:43 +00:00 |
Arvid Norberg
|
f09774607f
|
added upload mode
|
2009-06-18 22:32:55 +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
|
f0134c1b11
|
improved disk error handling and expanded use of error_code in error reporting
|
2009-06-10 08:30:55 +00:00 |
Arvid Norberg
|
0283f07aed
|
more buffer categories to help debugging
|
2009-05-31 22:38:49 +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
|
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
|
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
|
db8487be46
|
auto unchoke improvement
|
2009-04-04 07:55:34 +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
|
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
|
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
|
7fff6ace1b
|
added download queue time estimate
|
2009-02-17 02:33:45 +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
|
5bc4a2089d
|
fixed seeding choking algorithm to be more fair (proper round robin)
|
2008-12-10 23:07:44 +00:00 |
Arvid Norberg
|
b41cdd6469
|
initial super seeding support
|
2008-12-08 06:36:22 +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
|
c3bbf138a4
|
estimate TCP/IP overhead more accurately
|
2008-11-14 20:51:49 +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
|
fddd1ee8e2
|
fixed assert when connecting to upload-only peers
|
2008-09-07 01:01:25 +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
|
429a118dd2
|
keep track of interest more tightly. better support for upload_only
|
2008-07-18 10:03:42 +00:00 |
Arvid Norberg
|
1bdb6afebd
|
fixes to previous connection timeout check-in
|
2008-07-10 10:58:30 +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
|
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
|
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
|
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
|
f259e34f86
|
peer_connection fix for incoming connections
|
2008-05-12 10:10:39 +00:00 |
Arvid Norberg
|
abb174218b
|
updated disconnect logic (also in [2279]). Introduced new peer_disconnect_alert used for normal disconnects and peer_error_alert is now used for protocol level errors
|
2008-05-12 06:05:13 +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
|
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
|
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
|
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
|
1511f2f59b
|
removed calls to self() from inside constructors in peer connections
|
2008-03-31 04:46:24 +00:00 |
Arvid Norberg
|
a97be6937a
|
unchoker counts bytes instead of rates
|
2008-03-10 03:30:01 +00:00 |
Arvid Norberg
|
cecd0dfcd2
|
added rtt estimation for outgoing connections
|
2008-02-09 22:42:56 +00:00 |
Arvid Norberg
|
a53473a65d
|
added new logging mode to log peer errors
|
2008-02-07 07:09:52 +00:00 |
Arvid Norberg
|
5527a8e9b1
|
fixed build issue on msvc
|
2008-01-27 21:03:33 +00:00 |
Arvid Norberg
|
127d3e6ad5
|
bandwidth limiter fixes. proper priority that cannot starve connections
|
2008-01-17 17:40:46 +00:00 |
Arvid Norberg
|
b19bf337bf
|
generalized peer read/write state
|
2008-01-13 23:46:43 +00:00 |
Arvid Norberg
|
3a727e99ff
|
expose more info through peer_info
|
2008-01-10 22:13:23 +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
|
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
|
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
|
ac28fa7b62
|
some more asserts related to bandwidth manager
|
2007-12-14 18:02:06 +00:00 |
Arvid Norberg
|
f3d45fcfc1
|
initial support for ut_metadata
|
2007-12-02 04:16:51 +00:00 |
Arvid Norberg
|
d2880ff648
|
made allocate_send_buffer, setup_send and send_buffer virtual in peer_connection. Fixes #196
|
2007-10-31 10:20:05 +00:00 |
Arvid Norberg
|
6aeefaf513
|
removed self() from peer_connection, since it's in intrusive_ptr_base now
|
2007-10-31 09:44:31 +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
|
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
|
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
|
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
|
57a76f9db6
|
fixed debug assert on linux
|
2007-09-10 06:12:41 +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
|
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
|
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
|
be1faccd1d
|
peer_connection fixes for earlier pending disk buffer size limit
|
2007-08-03 08:19:10 +00:00 |
Arvid Norberg
|
8387240b31
|
more asserts, piece_picker fixes, debug-iterator fixes
|
2007-08-03 06:13:26 +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
|
5ae2e83af6
|
fixed _SECURE_SCL issue with msvc8
|
2007-07-17 01:29:58 +00:00 |
Arvid Norberg
|
47be8980ca
|
fixed typo in previous check-in
|
2007-07-09 17:45:45 +00:00 |
Arvid Norberg
|
df5a036066
|
fixed assert when using checked iterators
|
2007-07-09 17:34:38 +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
|
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
|
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
|
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
|
99a22dcae4
|
made dht requests be allocated in a pool allocator for heap and runtime efficiency. Fixes to DHT error responses
|
2007-05-23 08:45:12 +00:00 |
Arvid Norberg
|
1c147018db
|
fixed correct export macros for intrusive pointer refcounter functions
|
2007-05-21 19:31:37 +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
|
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
|
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
|
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
|
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
|
d0381a4cbd
|
added getters for rate limit on peer connections
|
2007-04-02 21:06:00 +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
|
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
|
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
|
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
|
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 |