Commit Graph

545 Commits

Author SHA1 Message Date
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
Arvid Norberg ec7eb0ebd6 more asserts in peer_connection 2005-11-04 00:14:55 +00:00
Arvid Norberg 051aa5dbe0 fixed an incorrect assert and added another one in the invariant check 2005-11-03 22:55:51 +00:00
Arvid Norberg d7b1dda483 renamed torrent::interface() since it seems msvc won't allow it as an identifier 2005-11-02 19:19:41 +00:00
Arvid Norberg bcbe165aee added the ability to limit the number of half-open tcp connections 2005-11-02 16:28:39 +00:00
Arvid Norberg 6d7236fbea fixed unchecked input 2005-10-18 18:16:36 +00:00
Arvid Norberg 51052fa2b1 fixed incorrect assert in file_win.cpp, added windows-unicode function for file_size 2005-10-17 20:37:40 +00:00
Arvid Norberg 23fbb8d240 may have fixed a bug where incorrect metadata was sent (introduced with the latest optimization) 2005-10-16 20:15:54 +00:00
Arvid Norberg a44c3c7811 fixed bug where upload ratio was not being respected 2005-10-15 17:21:49 +00:00
Arvid Norberg ea0e803fff removed some debug logging 2005-10-13 21:51:59 +00:00
Arvid Norberg b80c8720e3 fixed incorrect assert 2005-10-01 16:18:36 +00:00
Arvid Norberg a09159c239 fixed the buggy changes from last revision, modified the invariant checks 2005-10-01 15:12:10 +00:00
Arvid Norberg 7cfc0b2e44 fixed bug introduced when adding the separate request queue 2005-09-29 23:31:39 +00:00
Arvid Norberg 8ef7f58d16 fixed bug where some blocks weren't restored in the piece picker when the peer they were requested from disconnected. made the invariant check on policy work 2005-09-28 23:58:55 +00:00
Arvid Norberg beee914277 separated the queue of blocks to be requested from peers and those allocated for peers. This sets a hard limit on the remote request queue size and works better with BitComet 2005-09-27 08:07:24 +00:00
Arvid Norberg 09c98711d5 made the peer_connection re-request pieces that aren't sent (fixes a problem where the download could get stuck because bitcomet ignores some requests) 2005-09-21 21:44:38 +00:00
Arvid Norberg 82c0ca5675 Changed the way libtorrent find out if a peer supports its extensions to make it compatible with Mainline beta. 2005-09-18 10:18:23 +00:00
Arvid Norberg 5a1e064783 Added support for dht-port message. It is currently only logged. 2005-09-14 22:45:22 +00:00
Arvid Norberg 7f890239c4 Added new send buffer class to avoid unecessary copying of outgoing data. 2005-09-14 19:33:16 +00:00
Arvid Norberg a15f589341 fixed problem in piece_picker with filtered files, also optimzed it somewhat. Added more logging and added one test to the piece_picker test 2005-09-01 21:04:21 +00:00
Arvid Norberg 84ddeacea0 *** empty log message *** 2005-08-23 09:59:56 +00:00
Arvid Norberg e930580f13 *** empty log message *** 2005-08-18 23:55:32 +00:00
Arvid Norberg d19c2c6483 removed olf workarounds for vc6.5 and added documentation for building with autotools 2005-08-15 18:03:57 +00:00
Arvid Norberg c1ec7e8830 *** empty log message *** 2005-08-05 02:43:44 +00:00
Arvid Norberg 57144ea15d *** empty log message *** 2005-08-03 22:51:21 +00:00
Arvid Norberg de8839cc62 *** empty log message *** 2005-07-22 17:16:23 +00:00
Arvid Norberg 300e839fab *** empty log message *** 2005-07-16 00:56:50 +00:00
Arvid Norberg eca5300ebb *** empty log message *** 2005-06-15 12:54:35 +00:00
Arvid Norberg cf8d7beb23 *** empty log message *** 2005-06-13 10:58:00 +00:00
Arvid Norberg de63a70323 *** empty log message *** 2005-06-12 00:21:37 +00:00
Arvid Norberg 1bc22888a8 *** empty log message *** 2005-06-10 23:12:50 +00:00
Arvid Norberg fbffae1981 *** empty log message *** 2005-05-30 17:43:03 +00:00
Arvid Norberg 2fabb2bf80 experimental support for filtering pieces (filter from downloading that is) 2005-05-25 10:01:01 +00:00
Arvid Norberg 1672eed3f2 *** empty log message *** 2005-04-03 15:44:17 +00:00
Arvid Norberg 6ff7e76ab2 *** empty log message *** 2005-03-19 12:22:40 +00:00
Arvid Norberg ed868f04ed *** empty log message *** 2005-03-12 12:18:07 +00:00
Arvid Norberg a5c91f683a *** empty log message *** 2005-03-05 14:17:17 +00:00
Arvid Norberg 344d5b80c8 *** empty log message *** 2005-01-10 11:14:22 +00:00
Arvid Norberg b55a1a6766 *** empty log message *** 2004-12-21 12:30:09 +00:00
Arvid Norberg bc774ff491 *** empty log message *** 2004-11-30 11:17:32 +00:00
Arvid Norberg b29e378f22 *** empty log message *** 2004-11-18 22:33:50 +00:00
Arvid Norberg df281f81ae *** empty log message *** 2004-10-31 23:16:08 +00:00
Arvid Norberg e9ef2b56a5 *** empty log message *** 2004-10-17 22:23:08 +00:00
Arvid Norberg a8e8c715e8 *** empty log message *** 2004-10-14 01:17:04 +00:00
Arvid Norberg 579d63f49d *** empty log message *** 2004-09-16 01:14:16 +00:00
Arvid Norberg 2406d5e54d *** empty log message *** 2004-09-12 13:53:00 +00:00
Arvid Norberg 29cb9e8969 *** empty log message *** 2004-09-07 23:16:11 +00:00
Arvid Norberg a1b50fb1e3 *** empty log message *** 2004-08-08 21:26:40 +00:00
Arvid Norberg bd296f3657 *** empty log message *** 2004-07-24 11:54:17 +00:00
Arvid Norberg d1577962db *** empty log message *** 2004-07-06 18:20:07 +00:00
Arvid Norberg 2baa01e3ec *** empty log message *** 2004-07-01 07:12:17 +00:00
Arvid Norberg 82f5f056ea *** empty log message *** 2004-06-30 07:53:42 +00:00
Arvid Norberg 43997c41fd *** empty log message *** 2004-06-28 20:23:42 +00:00
Arvid Norberg 0f31d61d7d *** empty log message *** 2004-06-14 23:11:31 +00:00
Arvid Norberg 760fe68eff *** empty log message *** 2004-06-14 23:10:16 +00:00
Arvid Norberg f70bd8ac97 added a metadata extension. i.e. torrent-less downloads 2004-06-13 23:30:42 +00:00
Magnus Jonsson 00eaae092f *** empty log message *** 2004-05-13 23:34:42 +00:00
Arvid Norberg 6b5b48adbc *** empty log message *** 2004-04-17 12:29:35 +00:00