Commit Graph

705 Commits

Author SHA1 Message Date
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 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 e714e1aeba improved bandwidth limiter and added a unit test for it 2007-07-02 23:48:06 +00:00
Arvid Norberg bbaa2efcb0 removed asserts that are can no longer be maintained with the async io 2007-06-13 18:09:52 +00:00
Arvid Norberg b75a69cd47 added alerts for synchronizing disk io when pausing and moving storage 2007-06-11 21:24:14 +00:00
Arvid Norberg 3b8670626a merged back async_io branch into trunk 2007-06-10 20:46:09 +00:00
Arvid Norberg 14a15831ef exposed piece availability vector 2007-05-30 06:52:59 +00:00
Arvid Norberg 1d15a5040c removed old unused logging 2007-05-26 22:55:21 +00:00
Arvid Norberg c10e74f4fc improved control over the rate of connection attempts 2007-05-25 21:00:35 +00:00
Arvid Norberg ea45641c8b made lsd work 2007-05-17 00:01:51 +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 04e41cf702 improved connection queue handling slightly. Will require further improvements 2007-05-02 17:38:37 +00:00
Arvid Norberg 3794b49e3a fixed warning in msvc 2007-04-17 21:50:48 +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 1fd3216e6c fix to previous check-in 2007-04-11 22:50:01 +00:00
Arvid Norberg 87b1cdc341 fix to avoid connecting web seeds when not a seed but finished 2007-04-11 22:27:58 +00:00
Arvid Norberg e503e334d5 fix to previous check-in 2007-04-11 17:44:15 +00:00
Arvid Norberg 109cc3f232 made the announce timer (for dht and lsd) use a weak pointer instead of raw pointer, to avoid problems when torrent is being destructed 2007-04-11 17:22:19 +00:00
Arvid Norberg 250adabcfa removed unused web stats 2007-04-11 16:50:54 +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 4ceb6a02ea added download_limit and upload_limit functions to torrent_handle 2007-04-10 09:25:17 +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 a4ccee15df removed unused code 2007-04-04 02:10:25 +00:00
Arvid Norberg 5e32484194 first stab at getting local service discovery 2007-04-04 02:06:07 +00:00
Arvid Norberg 72fd437ff0 moved the resume data verification to the storage, since the storage may map the files differently. The creation of resume data should probably also be moved there 2007-03-27 23:49:05 +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 776b399a97 added api for piece priorities 2007-03-20 01:59:00 +00:00
Arvid Norberg 7ff5893431 reverted bad check-in where files_checked was removed from piece_picker 2007-03-17 17:28:59 +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 029953c5ae made the storage into a customization point. it is now interchangable for a custom implementation 2007-03-16 05:29:23 +00:00
Arvid Norberg 6f0a0beadb fix to allow hostnames for peers in tracker responses 2007-03-07 18:50:38 +00:00
Arvid Norberg 4f86042b97 bandwidth management fix + improved string conversion fallback in case strings are incorrect in torrent 2007-02-19 23:06:20 +00:00
Arvid Norberg 9c0e9701d9 fix for bug in bandwidth throttler when limiting a torrent to lower than bandwidth block size. Fixed #ifndef related to DHT support 2007-02-19 00:01:39 +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 90feac8126 deallocates the piece picker when seeding, to free up unused memory 2006-12-04 12:20:34 +00:00
Arvid Norberg 947df91b20 improved support for multiple connections per ip 2006-11-30 11:56:19 +00:00
Arvid Norberg 93b51d7652 more tweaks on quota management 2006-11-24 16:59:47 +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 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 1bde539d67 made the values sent to the tracker only include complete and hash checked data, to make them increase and decrease monotonically 2006-09-24 00:48:31 +00:00
Arvid Norberg 191fd76b42 made sequenced_download_threshold a per torrent setting. Updated the project page layout. Removed incorrect invariant checks in piece picker. 2006-09-04 17:17:45 +00:00
Arvid Norberg d0a38c50c6 fixed crash bug occuring when removing a torrent while it announces on the DHT. Fixed the mainloop not to quit when an uncought exception is thrown. 2006-08-29 01:15:24 +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 25dae899f0 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 13:48:39 +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 41810b1166 merged back the asio development branch 2006-04-25 21:04:48 +00:00
Arvid Norberg 04ad901577 applied (slightly modified) patches from Allen Zhao in an attempt to make it build on vc7 2006-01-07 13:48:14 +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 3f36dd0395 added the ability to build libtorrent as a shared library. Fixed bugs with deleting of incomplete types (replaced auto_ptr with scoped_ptr). Made the string converter fall back on windows local code page if utf-8 decoding failed. 2005-11-01 18:30:39 +00:00
Arvid Norberg d3996ccfb9 added metadata_failed_alert and allcoating torrent state 2005-10-17 13:45:53 +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 f63702c964 optimized session::add_torrent() by putting more info in torrent_info, to make it possible to reproduce the exact info section from an torrent_info object. The result is that the .torrent file is only parsed once. 2005-10-16 16:58:41 +00:00
Arvid Norberg f770d1438d fixed bug introduced in latest storage changes (triggered when using metadata extension). improved commandline switches to client_test 2005-10-16 09:15:46 +00:00
Arvid Norberg 032f4c715b *** empty log message *** 2005-10-15 23:16:39 +00:00
Arvid Norberg 189a8756ee big change in the way storage is checked. The checker thread can now check the fastresume data of a new torrent without waiting for a currently checking one 2005-10-13 07:59:05 +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 e514643056 added support for tracker warnings 2005-08-10 23:32:39 +00:00
spyhole d95b37fb33 no message 2005-08-01 14:24:19 +00:00
spyhole 3a4a63c566 no message 2005-08-01 13:34:51 +00:00
Arvid Norberg 080da58903 *** empty log message *** 2005-07-10 10:42:00 +00:00
Arvid Norberg d26b6462b5 *** empty log message *** 2005-07-06 13:18:10 +00:00
spyhole b4a2cc645f add file file filter functions to test 2005-07-03 23:33:47 +00:00
spyhole 4a1951f6f2 *** empty log message *** 2005-07-02 08:48:37 +00:00
Arvid Norberg 0d6a4de5aa *** empty log message *** 2005-06-22 23:04:37 +00:00
Arvid Norberg eca5300ebb *** empty log message *** 2005-06-15 12:54:35 +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 e525456498 *** empty log message *** 2005-05-29 17:25:13 +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 9707b6aeb0 added support for non-compact storage layout. i.e. all the files are allocated on disk before downloading starts 2005-05-13 00:39:39 +00:00
Arvid Norberg d38e66a223 *** empty log message *** 2005-05-03 13:13:57 +00:00
Arvid Norberg d9e10440f3 fixed assert bug in policy and generalized the tracker_connection observer interface a bit 2005-03-24 12:13:47 +00:00
Arvid Norberg 6ff7e76ab2 *** empty log message *** 2005-03-19 12:22:40 +00:00
Arvid Norberg a5c91f683a *** empty log message *** 2005-03-05 14:17:17 +00:00
Arvid Norberg 953d4fb600 *** empty log message *** 2005-02-23 20:38:29 +00:00
Arvid Norberg 5c5aabe7b1 *** empty log message *** 2005-02-23 08:57:54 +00:00
Arvid Norberg 782a3cfdc6 added the ability to get scrape data from the tracker announce reply 2005-02-21 13:59:24 +00:00
Arvid Norberg a34130b446 *** empty log message *** 2004-10-29 13:21:09 +00:00
Arvid Norberg a8e8c715e8 *** empty log message *** 2004-10-14 01:17:04 +00:00
Arvid Norberg a282a51c4d *** empty log message *** 2004-09-16 12:12:36 +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 492565b979 *** empty log message *** 2004-09-12 10:12:16 +00:00
Arvid Norberg a1b50fb1e3 *** empty log message *** 2004-08-08 21:26:40 +00:00
Magnus Jonsson 7fe3323ced added num_seeds and distributed_copies to torrent_status 2004-08-05 13:56:26 +00:00
Arvid Norberg bd296f3657 *** empty log message *** 2004-07-24 11:54:17 +00:00
Arvid Norberg 1148a5574c *** empty log message *** 2004-07-18 00:39:58 +00:00
Arvid Norberg f70bd8ac97 added a metadata extension. i.e. torrent-less downloads 2004-06-13 23:30:42 +00:00
Arvid Norberg 7645360cf9 *** empty log message *** 2004-04-18 13:41:08 +00:00
Arvid Norberg adbfc0378c *** empty log message *** 2004-04-18 12:28:02 +00:00
Arvid Norberg 98c1c824df timeouts become longer the more times a tracker fails 2004-04-01 22:29:51 +00:00
Arvid Norberg fac783b4d8 *** empty log message *** 2004-03-28 17:45:37 +00:00
Arvid Norberg 870b4aeaab *** empty log message *** 2004-03-23 22:58:18 +00:00
Arvid Norberg bb52b74a9e *** empty log message *** 2004-03-21 02:03:37 +00:00
Arvid Norberg 5d65eab1bd *** empty log message *** 2004-03-01 00:50:00 +00:00
Arvid Norberg 2d363127e9 *** empty log message *** 2004-02-26 00:27:06 +00:00
Arvid Norberg f788d65ee5 *** empty log message *** 2004-02-24 16:22:43 +00:00
Arvid Norberg 9a2fc89eae Made the Jamfile to work with boost-build.
updated documentation to reflect the new (working) Jamfile.
2004-02-22 22:40:45 +00:00
Arvid Norberg 80b57290c9 *** empty log message *** 2004-01-31 10:46:15 +00:00
Arvid Norberg 0dbbc18186 removed most warnings on msvc.
reimplemented piece_manager::check_pieces to take care of all possible cases of the storage state.
2004-01-25 18:18:36 +00:00
Arvid Norberg 718f01155f *** empty log message *** 2004-01-25 12:37:15 +00:00
Magnus Jonsson 0634e778e9 *** empty log message *** 2004-01-25 04:18:08 +00:00
Arvid Norberg a3b47ec826 added documentation of udp-tracker protocol and finalized support for it. 2004-01-22 22:45:52 +00:00
Arvid Norberg b897315abb implemented completely untested support for udp-trackers. 2004-01-21 13:16:11 +00:00
Arvid Norberg a9ef075d7d started work on udp-tracker support. 2004-01-20 22:59:21 +00:00
Arvid Norberg 6d22d4144c *** empty log message *** 2004-01-20 11:01:50 +00:00
Arvid Norberg b9c3db8a07 *** empty log message *** 2004-01-19 19:36:55 +00:00
Arvid Norberg 23256b9b1f *** empty log message *** 2004-01-18 19:12:18 +00:00
Arvid Norberg e257516670 took a shot at making it compile on vc6. 2004-01-18 01:58:33 +00:00
Magnus Jonsson e1f433f5db *** empty log message *** 2004-01-16 03:58:24 +00:00
Arvid Norberg 410b35f95e *** empty log message *** 2004-01-15 16:45:34 +00:00
Arvid Norberg f036fc99a4 *** empty log message *** 2004-01-14 19:24:11 +00:00
Arvid Norberg 62f3af5b0f *** empty log message *** 2004-01-14 12:53:17 +00:00
Arvid Norberg 9983e7c85b *** empty log message *** 2004-01-14 01:19:30 +00:00
Arvid Norberg abbedbf104 *** empty log message *** 2004-01-13 03:08:59 +00:00
Arvid Norberg b6c826c6af *** empty log message *** 2004-01-12 20:31:27 +00:00
Arvid Norberg 9e979efb8b *** empty log message *** 2004-01-12 03:05:10 +00:00
Arvid Norberg 8137e5002d *** empty log message *** 2004-01-08 17:03:04 +00:00
Arvid Norberg 91c9156de1 *** empty log message *** 2004-01-07 00:48:02 +00:00
Arvid Norberg c432c9ad68 *** empty log message *** 2003-12-22 07:14:35 +00:00
Arvid Norberg cb89ccf6be *** empty log message *** 2003-12-18 03:30:41 +00:00
Arvid Norberg 029e185a1e *** empty log message *** 2003-12-17 03:40:13 +00:00
Arvid Norberg 5158ca8558 Updated zlib version.
Changed fignerprint interface to force azureus-style fingerprints.
Tested the load balancing, it seems to work.
2003-12-16 13:33:29 +00:00
Arvid Norberg 24e4c197c9 *** empty log message *** 2003-12-14 05:56:12 +00:00
Arvid Norberg 557b3f3955 *** empty log message *** 2003-12-09 18:09:34 +00:00
Arvid Norberg 5f9ae41e86 *** empty log message *** 2003-12-07 05:53:04 +00:00
Daniel Wallin b62f8f1a85 started implementation of new storage. 2003-12-07 01:26:57 +00:00
Arvid Norberg 6402fd4a14 *** empty log message *** 2003-12-01 21:27:27 +00:00
Arvid Norberg f21d6a0f7f there are still some serious issues with storage when having large torrents (about 700 meg and up at least) 2003-12-01 05:01:40 +00:00
Daniel Wallin 329e610ca6 new storage 2003-11-26 14:11:25 +00:00
Arvid Norberg a1356219da added simple_client (and added it in the docs as well).
updated documentation to include some sample code.
fixed a nasty network bug.
It now seems to work on linux (at least in cygwin).
2003-11-23 03:00:45 +00:00
Arvid Norberg 086dbd40fe added support for comments and creation date in torrent files.
fixed bug in url_handler.
2003-11-20 19:58:29 +00:00
Arvid Norberg eb90660022 fixed to work with managed C++ projects. 2003-11-07 01:44:30 +00:00
Arvid Norberg 81289c9354 *** empty log message *** 2003-11-06 10:44:19 +00:00
Arvid Norberg 6325295993 *** empty log message *** 2003-11-04 23:27:06 +00:00
Arvid Norberg b5914b5528 *** empty log message *** 2003-10-31 10:56:03 +00:00
Arvid Norberg 6466b46573 *** empty log message *** 2003-10-31 04:02:51 +00:00
Arvid Norberg d7f92afea3 *** empty log message *** 2003-10-29 23:28:09 +00:00
Arvid Norberg fb4fa20744 *** empty log message *** 2003-10-27 15:43:33 +00:00
Arvid Norberg fca86964f8 *** empty log message *** 2003-10-26 17:35:23 +00:00
Arvid Norberg 1800e63c09 *** empty log message *** 2003-10-23 16:55:52 +00:00
Arvid Norberg ec34b1bfdb Initial commit of 'new' libtorrent.
The Jamfile is broken and will hopefully be fixed soon.
2003-10-22 23:00:57 +00:00