Commit Graph

277 Commits

Author SHA1 Message Date
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