Commit Graph

1498 Commits

Author SHA1 Message Date
Arvid Norberg f9c12ef589 added more disk io asserts 2009-05-23 15:50:38 +00:00
Arvid Norberg c1d9198dc3 added largest_contiguous cache flush algorithm 2009-05-23 07:35:45 +00:00
Arvid Norberg e36ea4ba5d added instrumentation for disk access. Useful to benchmark disk cache performance 2009-05-23 03:03:52 +00:00
Arvid Norberg 0127edac14 added disk-checking delay, to leave room for other disk operations while checking a torrent 2009-05-22 06:32:39 +00:00
Arvid Norberg cb9c3cb37d memory optimization for checking torrents 2009-05-21 16:15:05 +00:00
Daniel Wallin d74f6db11f Use a safer default handler storage size until we can figure out some
good platform specific defaults.
2009-05-21 11:51:52 +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 c047f66454 improved disk buffer logging and added extra asserts when logging disk buffer stats 2009-05-19 07:00:05 +00:00
Arvid Norberg a51dfa50f5 renamed peer_from_tracker to add_peer 2009-05-15 22:07:19 +00:00
Arvid Norberg 437cb94fd0 improved IPv6 support by announcing twice when necessary 2009-05-15 21:23:41 +00:00
Arvid Norberg 53f890608d use C99 string formatting macros for platform independence 2009-05-15 15:52:15 +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 0c3f9a7f88 lowered default setting for max peer list size 2009-05-13 22:19:25 +00:00
Arvid Norberg 00ccf9064e optimized memory usage in the DHT, and added some handling for out-of-memory cases 2009-05-13 22:18:41 +00:00
Arvid Norberg bdd7e21831 replace endpoint with address in DHT node ban list 2009-05-13 21:07:51 +00:00
Arvid Norberg 062e1796c0 fixed crash when shutting down while checking a torrent 2009-05-13 17:17:33 +00:00
Arvid Norberg b7c5d2f12d add a separate setting for max peer list size for paused torrents 2009-05-13 01:34:10 +00:00
Arvid Norberg 8e3bd5154a removed iostream and boost-regex dependency in client_test 2009-05-13 01:02:06 +00:00
Arvid Norberg 85bf463e11 added session setting to control disk buffer pool allocation sizes 2009-05-12 18:52:05 +00:00
Arvid Norberg 649f95c932 added session_settings presets for low memory usage and seed box environments 2009-05-12 18:05:04 +00:00
Arvid Norberg d5164b1b1e fixed typo. made it possible to set max_outstanding_disk_bytes_per_connection to 0 2009-05-12 17:57:52 +00:00
Arvid Norberg 92f42eb23c fixed move_stororage to handle the case where it fails 2009-05-11 21:18:09 +00:00
Arvid Norberg 136f101449 when reaching peer list size limit, rank peers to be removed. Fix for updating IP filter 2009-05-11 20:23:47 +00:00
Arvid Norberg 9523d88909 made file_pool use std::map instead of multi-index, and use std::string::operator< instead of the quite inefficient filesystem::path::operator< 2009-05-09 21:11:25 +00:00
Arvid Norberg 1eb2799a03 added more allocation logging for statistics builds. Identified and fixed some memory waste 2009-05-07 20:30:20 +00:00
Arvid Norberg a961e253ef fix logging build 2009-05-07 16:30:14 +00:00
Arvid Norberg 838df44184 documented file_rename_failed_alert and file_renamed_alert. they were previously not documented. Fixed bug where the storage would be left in an error state (and eventually pause the torrent) when a rename_file() failed. The error is now only reported back through the alert 2009-05-07 06:41:41 +00:00
Arvid Norberg c8176cca55 optimized peer storage in resume data an in memory. Should use far less memory than previously for the peer list. Introduced peer source affinity, to avoid problem with a peer list that's diluted with stale peers 2009-05-06 22:36:24 +00:00
Arvid Norberg ff3db926fb allocates 10 disk buffers at a time instead of 32. Fixed bug where connection candidates would be too high 2009-05-06 07:06:26 +00:00
Arvid Norberg 41a9b88189 increase buffer size for tracker error messages. Fix snprintf on windows 2009-05-06 00:52:33 +00:00
Arvid Norberg cf6dc377c9 define fixes for disk stats build configurations 2009-05-04 06:42:24 +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 f2ec6b5adb added option to use a single block buffer when hashing, instead of for the entire piece 2009-05-03 19:09:06 +00:00
Arvid Norberg d73c97e444 made get_download_queue() use considerably less memory and scale with larger piece_sizes 2009-05-03 09:45:07 +00:00
Arvid Norberg c71100950b fix to recalculate_connect_candidates 2009-05-03 06:57:04 +00:00
Arvid Norberg 807c1fc397 added validation check to disk_buffer_pool (and disk_io_thread in 0.14). This should catch any reference to the disk_io_thread after it has been destructed 2009-05-03 03:16:15 +00:00
Arvid Norberg b75648445e fixed magnet link parser to accept hex encoded info-hashes 2009-05-02 18:36:51 +00:00
Arvid Norberg e4ddb13b6f made the cache_size setting include send and receive buffers 2009-05-02 06:52:57 +00:00
Arvid Norberg 06b609aa1f fixed unchoke bug. made the automatic unchoke strategy the default 2009-05-02 03:15:52 +00:00
Arvid Norberg e929c58e9f fixed bug in ratelimiter's outstanding bytes counter 2009-05-01 09:42:43 +00:00
Arvid Norberg 033fd5bd22 count send and receive buffers against the cache size limit 2009-05-01 08:00:58 +00:00
Arvid Norberg 84dda7b617 support for adjusting the socket buffer sizes through session_settings 2009-05-01 04:59:15 +00:00
Arvid Norberg 6ca1c191b6 some windows fixes for dynamic linking 2009-04-30 17:30:14 +00:00
Arvid Norberg 3cf34e3a91 greatly optimised memory usage for peer list 2009-04-30 05:49:46 +00:00
Arvid Norberg dce0e1bb58 fixed disk stat build 2009-04-30 01:42:30 +00:00
Arvid Norberg 12dd8a8723 build windows python bindings with geoip support. fixes some warnings in msvc 2009-04-26 21:21:31 +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 f7ebd88bec fixed an accuracy issue with timer classes on mac 2009-04-25 21:51:34 +00:00
Arvid Norberg fba4ae541c fixed invalid iterator access in debug mode 2009-04-25 08:19:21 +00:00
Arvid Norberg 4724051841 fixed assert in udp_socket 2009-04-13 17:52:45 +00:00
Arvid Norberg c6f4879e06 fixed race condition in bandwidth manager 2009-04-13 16:31:22 +00:00
Arvid Norberg cf2654ba00 exit before invariant check if we're aborting, in bandwidth_manager 2009-04-13 06:07:16 +00:00
Arvid Norberg 189d618261 improved IPv6 support (skips unsupported tests on windows) 2009-04-13 05:11:44 +00:00
Arvid Norberg 32a42bae99 removed some dependencies on stringstream 2009-04-13 04:22:03 +00:00
Arvid Norberg f6c97254e1 gzip.hpp fix 2009-04-13 02:00:33 +00:00
Arvid Norberg 066d6ce799 moved content-range parsing into http_parser and added unittest 2009-04-12 17:52:25 +00:00
Arvid Norberg 6a11d6ee4e IPv6 tracker fix 2009-04-12 00:37:06 +00:00
Arvid Norberg 90ce06bb47 web seed fix 2009-04-11 20:45:14 +00:00
Arvid Norberg a051228069 fixed bug in storage when forcing recheck while renaming a file or moving it 2009-04-10 07:22:27 +00:00
Arvid Norberg 7538b3da82 fixed string formatting bug 2009-04-09 15:45:17 +00:00
Arvid Norberg 41be942ae7 experimental support for incoming connections over socks (untested) 2009-04-09 01:04:49 +00:00
Arvid Norberg a956265be4 merged socks4 and socks5 code and improved SOCKS error messages 2009-04-08 04:18:45 +00:00
Arvid Norberg 1ed9e6d2f8 more C bindings and added getters for max_uploads on session and torrent 2009-04-07 15:55:05 +00:00
Arvid Norberg 981ae208d1 exception fixes 2009-04-07 15:06:07 +00:00
Arvid Norberg 970ab50e57 snprintf fix 2009-04-07 01:14:12 +00:00
Arvid Norberg 426e653213 defines for snprintf and strtoll for windows 2009-04-06 17:15:19 +00:00
Arvid Norberg 2bb1772299 time_duration fix (works with boost.date-time again) 2009-04-06 17:12:14 +00:00
Arvid Norberg 40c6db3c52 debug define fix in piece_picker 2009-04-04 21:50:36 +00:00
Arvid Norberg 2b671bc820 more iostream fixes 2009-04-04 21:44:04 +00:00
Arvid Norberg b5bb51c6af cut out more IPv6 code if not supported 2009-04-04 16:59:53 +00:00
Arvid Norberg aba5b2e9d0 dropped some iostream dependencies 2009-04-04 09:52:25 +00:00
Arvid Norberg 3cd26dec64 compile time options to use readv/writev or not 2009-04-04 08:23:53 +00:00
Arvid Norberg db8487be46 auto unchoke improvement 2009-04-04 07:55:34 +00:00
Arvid Norberg e3eb59f477 fixed leaking exception from bdecode on malformed input. Fixes #492 2009-04-01 03:37:54 +00:00
Arvid Norberg 91ba36a396 added compile time option for mlock support 2009-03-31 08:15:21 +00:00
Arvid Norberg 982cf7f7f7 improved support for platforms with no wchar_t and std::wstring 2009-03-31 08:12:35 +00:00
Arvid Norberg c6017f9366 reverted bug introduced a few check-ins ago. Fixed case when recursive_copy fails (don't remove the original files). Cleaned up callback dispatching in disk_io_thread in trunk. Improved unit tests for move_storage 2009-03-31 08:05:46 +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 1a6d2f86b9 add compile time option to disable IPv6 support 2009-03-31 07:45:54 +00:00
Arvid Norberg 9c4c49c443 logging build fix and indentation fix 2009-03-27 17:14:15 +00:00
Arvid Norberg 1ed7e222f8 added documentation to explain how paused and auto_managed are overridden by resume_data. Added a mechanism to trunk to ignore the resume data for those two settings. Updated documentation in trunk to include more fields in the resume data. Fixed broken links in the trunk docs 2009-03-21 04:33:53 +00:00
Arvid Norberg 907532be8e bumped version number to 0.14.3 and updated set_version.py 2009-03-20 07:38:47 +00:00
Arvid Norberg cc432a8cd8 added error handling for set_piece_hashes 2009-03-19 17:32:40 +00:00
Arvid Norberg 31054ef069 first implementation of set_piece_deadline 2009-03-17 09:34:44 +00:00
Arvid Norberg 233258502c fixed bug in time_duration operator* 2009-03-16 03:36:20 +00:00
Arvid Norberg e2ac32e7cf remove unused members and fix warning 2009-03-14 09:25:26 +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 de233c23a2 fix MinGW build issue on windows (IPV6_PROTECTION_LEVEL) 2009-03-08 02:16:35 +00:00
Arvid Norberg 6353b3c3e6 fixed boost-1.34.1 build 2009-03-06 08:57:00 +00:00
Arvid Norberg 93eda7c7fa fix ignore unchoke slot invariant check 2009-03-01 07:20:08 +00:00
Arvid Norberg b809028bda uses iconv by default on linux to convert filenames from utf-8 to the current locale 2009-03-01 00:02:33 +00:00
Arvid Norberg b84e87edf4 build fix 2009-02-27 07:03:00 +00:00
Arvid Norberg 7aacfca292 made the examples build without exception support. added overloads of add_torrent() and add_magnet_uri() that don't throw 2009-02-26 07:09:56 +00:00
Arvid Norberg f8e72650bd fixed #488 2009-02-25 05:53:24 +00:00
Arvid Norberg b25a8db2a6 added more error codes. consolidated exception classes into one. moved over more places to use error_code instead of strings. fixed proper error handling for torrent_info 2009-02-23 01:21:19 +00:00
Arvid Norberg 9edf2db4c3 memcpy/memset build issue in bitfield.hpp 2009-02-22 21:01:51 +00:00
Arvid Norberg b573b17725 windows boost-1.38 build fix 2009-02-21 10:23:25 +00:00
Arvid Norberg 95829383a8 alert improvements 2009-02-21 10:21:28 +00:00
Arvid Norberg afd04635e9 replaced std::isdigit with is_digit, to avoid asserts on windows and locale dependency. Fixes #484 2009-02-18 06:01:24 +00:00
Arvid Norberg 7fff6ace1b added download queue time estimate 2009-02-17 02:33:45 +00:00
Arvid Norberg 13ca386838 improved support for sparse files on windows 2009-02-17 00:11:38 +00:00
Arvid Norberg 9905f700ae prepare to take sparse regions into account when checking files 2009-02-14 04:31:08 +00:00
Arvid Norberg dc4d50b117 don't make files sparse when allocation mode is set on the storage (windows only) 2009-02-14 03:56:07 +00:00
Arvid Norberg 3187bd9905 moved some errors over to use error_code 2009-02-13 19:01:02 +00:00
Arvid Norberg 2a9605f9db the reserved bits are only 8 bytes 2009-02-13 07:17:20 +00:00
Arvid Norberg 0b1a0c5132 replaced dependency on locale dependent isspace 2009-02-10 07:21:28 +00:00
Arvid Norberg 41ff39605b removed unused member variable 2009-02-08 20:26:25 +00:00
Arvid Norberg ba0f894c7c avoid adding a torrent to the checking queue twice 2009-02-08 01:29:09 +00:00
Arvid Norberg 7744718b44 added error message to invalid_torrent_file exception (will be replaced by error_code at some point) 2009-02-07 19:18:48 +00:00
Arvid Norberg 5c12db28d2 added option to lock disk cache in physical memory 2009-02-06 09:46:13 +00:00
Arvid Norberg 7607286f50 fixing bug where the trailing bits in bitfields were not set to 0. Fixes #482 2009-02-06 08:51:25 +00:00
Arvid Norberg bcd93da465 fixed encryption asserts 2009-02-04 05:51:00 +00:00
Arvid Norberg 1ac8f806fa added seed mode support (lazy hash checking) 2009-02-03 07:46:24 +00:00
Arvid Norberg 2623037482 local peers are excempt from unchoke slots. #469 2009-01-28 06:14:21 +00:00
Arvid Norberg 8bcdb333e0 fix typo in comment 2009-01-28 05:19:19 +00:00
Arvid Norberg b245d45570 fixed encryption bug 2009-01-28 04:20:05 +00:00
Arvid Norberg 0ba2e2cdbd fixed issue where torrents that failed checking would not resume checking when the error was cleared. One side effect of this fix is that it should now be possible to pause checking torrents with the 0.14 branch 2009-01-27 09:18:51 +00:00
Arvid Norberg 3cdf9c87a8 fixed build errors on Solaris 2009-01-27 08:24:48 +00:00
Arvid Norberg 37c48117b0 fix potential bug (and warning on sunpro) in the send_buffer signature 2009-01-27 06:57:55 +00:00
Arvid Norberg 8030454c96 fixes problem whith lexical_cast being locale dependent 2009-01-27 06:17:55 +00:00
Arvid Norberg 76cea23b4c cleanup of previous check-in. fixing boost-1.34 compatibility and syntax error 2009-01-23 17:06:23 +00:00
Arvid Norberg 9b5aa967b0 fixed race condition when saving DHT state 2009-01-23 16:40:00 +00:00
Arvid Norberg 2b4a49ea19 small dht status cleanup 2009-01-23 10:36:07 +00:00
Arvid Norberg b3a17b1787 added disk buffer instrumentation and log parser 2009-01-23 09:13:31 +00:00
Arvid Norberg 00808473e7 factor out disk_buffer_pool from disk_io_thread. refactored the file open modes to be platform independent. gave the disk_io_thread its own copy of session_settings that it shares with storage. added an unaligned_read implementation to storage. Added options to session_settings on when to open files in unbuffered mode. Added unit tests for unaligned reads 2009-01-21 07:31:49 +00:00
Arvid Norberg 9a9f08f70f enables teredo support on windows 2009-01-21 01:39:13 +00:00
Arvid Norberg cedea0980f separate alignment requirements for file offset and buffer address 2009-01-19 09:21:21 +00:00
Arvid Norberg d506bcd5de prevent torrent optimization in unit test 2009-01-19 08:46:45 +00:00
Arvid Norberg dceb879f50 added missing include directive 2009-01-17 19:45:14 +00:00
Arvid Norberg 5b551c1761 merged storage::readv() and storage::writev() 2009-01-17 08:35:48 +00:00
Arvid Norberg ce6c09e070 added missing export directives 2009-01-17 01:42:33 +00:00
Arvid Norberg d2b66b8bae added include guards to allocator.hpp 2009-01-17 01:40:06 +00:00
Arvid Norberg 78d3654263 fix file.cpp build on linux 2009-01-17 00:09:44 +00:00
Arvid Norberg 113d1f3557 moved page_aligned_allocator to its own file and uses it in set_piece_hashes to not pass in unaligned buffers to storage read 2009-01-15 17:09:36 +00:00
Arvid Norberg 3f94cc8857 made the sequential download mode slightly more sequential (by letting more categories of peers request early pieces). Disabled speed affinity and prefer_whole_pieces when in sequential download mode 2009-01-14 09:07:27 +00:00
Arvid Norberg bd1757fbd2 added libtorrent version and svn revision to assert output 2009-01-14 08:41:14 +00:00
Arvid Norberg 66ccc9d23f improved support for padding files by not counting them in total_wanted_done and total_wanted or progress 2009-01-14 07:41:25 +00:00
Arvid Norberg d4148055b9 remove unnecessary semicolon 2009-01-13 09:31:35 +00:00
Arvid Norberg 43e69cd316 added extension for file attributes. Fixes problem when sharing Application bundles on OSX or hidden files on windows 2009-01-11 22:27:43 +00:00
Arvid Norberg eea890de11 added support for generating torrent files with padding files in them 2009-01-11 10:32:57 +00:00
Arvid Norberg 7592ad4aee updated disk IO to support unbuffered files 2009-01-11 02:02:34 +00:00
Arvid Norberg 20a0593fa3 removed mapped_storage 2009-01-10 07:14:02 +00:00
Arvid Norberg cfd116ffad made disk_io_settings be synchronized through the job queue 2009-01-10 05:46:02 +00:00
Arvid Norberg ab05011f1d added missing export directives to lazy_entry 2009-01-06 22:44:32 +00:00
Arvid Norberg 52ee9342e9 alloca macro fix 2009-01-05 01:09:32 +00:00
Arvid Norberg d07ccaf6b8 workaround for sparse files issue on Windows vista 2009-01-05 01:08:09 +00:00
Arvid Norberg f1d229aae6 first pass of replacing coalesce writes and reads by writev and readv (no windows support yet) 2009-01-03 08:11:31 +00:00
Arvid Norberg dacb1ac48d reverted async. call to torrent::start() since it creates an undesirable race condition for file operations 2009-01-02 08:58:51 +00:00
Arvid Norberg 233f2ed00c start of use of writev instead of coalescing into a heap allocated buffer 2009-01-01 01:47:57 +00:00
Arvid Norberg 1ec87c8f4b remove (deprecated) non-const files() from torrent_info since it opens a loop-hole to modifying the filenames without preserving the original ones 2008-12-30 17:50:34 +00:00
Arvid Norberg e5d3755afb added support for http seeds (BEP 17) 2008-12-30 03:54:07 +00:00
Arvid Norberg 86b794b105 fix logging build 2008-12-28 03:01:36 +00:00
Arvid Norberg 469fe10107 udp_socket fix believed to fix #445 2008-12-28 01:50:55 +00:00
Arvid Norberg 415a574cca tweaked send buffer sizes to make buffers addresses aligned 2008-12-27 17:00:06 +00:00
Arvid Norberg 4ccf2af653 formatting fixes for pe_crypto.cpp 2008-12-27 16:44:20 +00:00
Arvid Norberg b81ae19e86 fix uninitialized variable read (next_announce) 2008-12-27 07:22:57 +00:00
Arvid Norberg 952ed687cd made session stats config build 2008-12-26 07:00:21 +00:00
Arvid Norberg d2e8ae03d3 added default constructor to node_entry to make it build with vs 2008 sp1 2008-12-25 22:29:06 +00:00
Arvid Norberg de911676ed added asserts to make sure tracker_connections are shut down correctly (#451) 2008-12-25 02:05:23 +00:00
Arvid Norberg 6f80fdf9f7 fix bug when renaming files and using the web_peer_connection. Deprecated non-const file_storage access in torrent_info 2008-12-24 20:07:34 +00:00
Arvid Norberg 00d02f7859 improved DHT get_peers code. get_peers always returns nodes now, and announce_peer is always sent to the k closest nodes to the info-hash. This should significantly speed up retrieving peers from the DHT 2008-12-23 20:04:12 +00:00
Arvid Norberg d323e9bdfd ConvertUTF.h fixes 2008-12-23 19:46:58 +00:00
Arvid Norberg bb4e5c61b9 ConvertUTF C fix 2008-12-22 09:45:54 +00:00
Arvid Norberg f6a9e44523 modified fix for #431 to make it actually build and work 2008-12-21 19:15:53 +00:00
Arvid Norberg 7b8663fa8b support for wide character paths for the GeoIP databases. Fixes #431 2008-12-21 08:48:06 +00:00
Arvid Norberg 5f74c1e754 disable WPATH on mac builds as it doesn't seem to work 2008-12-20 22:37:40 +00:00
Arvid Norberg f8ea5ffa07 updated version numbers and makefile 2008-12-16 00:50:30 +00:00
Arvid Norberg f1d981254a added session::set_alert_dispatch() for system specific message loop integration 2008-12-15 07:12:08 +00:00
Arvid Norberg 8f308ef881 fixed invariant checks in bandiwdth_manager 2008-12-14 22:59:47 +00:00
Arvid Norberg b47f965c85 added torrent_handle::read_piece(). #441 2008-12-14 19:47:02 +00:00
Arvid Norberg 3cb61809ce fixed invariant check in bandwidth_manager 2008-12-14 11:10:54 +00:00
Arvid Norberg 0638251289 added queued bytes to bandwidth manager and session_stats 2008-12-13 05:12:12 +00:00
Arvid Norberg 6d3d58020a udp_socket fixes and extra asserts 2008-12-12 09:20:27 +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 92f121f504 tcp/ip overhead calculation fix 2008-12-10 22:54:49 +00:00
Arvid Norberg 5fb854d724 improved super seeding with strict option 2008-12-09 07:56:37 +00:00
Arvid Norberg ef8234efc5 fixed preprocessor defines using UNICODE instead of TORRENT_USE_WPATH. Removed old boost.filesystem replacement code to support boost 1.33 2008-12-09 03:45:58 +00:00
Arvid Norberg 2768874eea removed unused member 2008-12-09 00:27:42 +00:00
Arvid Norberg 2a9353cf48 prefer udp trackers. Fixes #433 2008-12-08 09:13:21 +00:00
Arvid Norberg b41cdd6469 initial super seeding support 2008-12-08 06:36:22 +00:00
Arvid Norberg 14c142d997 added add_piece() to inject data from external sources 2008-12-07 21:04:19 +00:00
Arvid Norberg 3b7e484d6a various fixes for potential shutdown freezes 2008-12-07 20:25:04 +00:00
Arvid Norberg 3d136a8e93 fixed logging build 2008-12-02 08:29:45 +00:00
Arvid Norberg 70f4303d92 added tracker IP to tracker_response callback and added filtering of local IPs in pex and tracker responses. #409 2008-12-01 08:48:54 +00:00
Arvid Norberg 58a3f6e4a0 added wpath overload for torrent_info constructor 2008-12-01 07:52:59 +00:00
Arvid Norberg 96e34b80b2 added missing string in state_change_alert 2008-12-01 07:01:53 +00:00
Arvid Norberg 4b738fca7a added previous state to state_changed_alert. #401 2008-12-01 00:19:05 +00:00
Arvid Norberg 8e48e81ead added wpath and wstring overloads for functions dealing with paths for more complete wide character support. #432 2008-11-30 08:12:26 +00:00
Arvid Norberg 6027f9f20c made assert tied to the new TORRENT_DEBUG define. Fixed two include problems that surfaced as a result 2008-11-30 04:50:52 +00:00
Arvid Norberg 18d3744adb added python converter from unicode to path 2008-11-30 00:17: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 d1a2b774e6 changed how trackers are handled. Implements #297 by setting session_settings::announce_to_all_trackers to true 2008-11-29 08:38:40 +00:00
Arvid Norberg acbdbfc1ef added tracker exchange (tex) extension 2008-11-27 20:51:59 +00:00
Arvid Norberg 3fd5405fa9 torrent_handle::add_tracker() 2008-11-26 01:42:14 +00:00
Arvid Norberg 157603b597 first pass at a link compatibility check 2008-11-23 15:44:11 +00:00
Arvid Norberg 357d548bb5 fixed boost.filesystem usage to not rely on deprecated functions 2008-11-21 23:38:07 +00:00
Arvid Norberg 723aba6c24 solved issue with pausing checking torrents. Introduced a new state, checkin_resume_data, which a torrent is in while waiting for the disk io thread to verify the resume data, but before it has been determined wheter it should be queued for checking or not 2008-11-19 00:46:48 +00:00
Arvid Norberg 78abf8a340 made recent change where the TCP/IP overhead is take into account when rate limiting, optional 2008-11-18 11:14:44 +00:00
Arvid Norberg a41cf27e32 define NAME_MAX on windows 2008-11-17 18:27:32 +00:00
Arvid Norberg f503bbfe86 fix for when aborting torrents that are being checked. Fix in client_test when removing torrents that are checking. 2008-11-17 01:19:46 +00:00
Arvid Norberg a48ffe36e0 improved natpmp logging and handling of mapped ports in session 2008-11-16 02:11:04 +00:00
Arvid Norberg e9a33e6a05 added option to set alert mask when constructing session 2008-11-16 02:09:53 +00:00
Arvid Norberg c3bbf138a4 estimate TCP/IP overhead more accurately 2008-11-14 20:51:49 +00:00
Arvid Norberg bbc94a1231 dllexport new utf conversion functions 2008-11-14 05:25:01 +00:00
Arvid Norberg 03398e94b0 replaced utf8 conversion with code from unicode.org 2008-11-13 06:39:08 +00:00
Arvid Norberg 1b10a3b15f DHT instrumentation changes 2008-11-12 03:56:56 +00:00
Arvid Norberg beb9dbfc03 cleaned up DHT error handling and logging. Made it use lazy_bdecode for improved performance 2008-11-11 17:51:02 +00:00
Arvid Norberg 473f75e98a DHT fix where the node_id would get set after it was started and be inconsitent with rpc_manager and routing_table 2008-11-11 08:33:34 +00:00
Arvid Norberg 4abd27b40e initialize torrent object in libtorrent thread instead of in calling thread 2008-11-10 02:33:39 +00:00
Arvid Norberg 18d269dd62 DHT optimizations 2008-11-10 02:08:42 +00:00
Arvid Norberg ce544e2300 DHT rate limiter fixes 2008-11-09 00:37:03 +00:00
Arvid Norberg 3ed38059aa rate_limited_udp_socket fixes 2008-11-08 21:44:24 +00:00
Arvid Norberg 9bba20cdb4 first pass at rate limited udp socket (for DHT) 2008-11-08 17:40:06 +00:00
Arvid Norberg 4e9124019b added accessor to query for the max number of connections 2008-11-08 07:40:55 +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 4dacfcbaaf change the default UPnP settings to map anything that's found on the local network 2008-11-02 20:42:48 +00:00
Arvid Norberg f2c9e02994 fixed deadlock in dht code 2008-11-02 10:01:04 +00:00
Arvid Norberg 4dada930ac made torrents not wanting more peers whene they're shutting down. Closes out all connections in the connection queue explicitly when session is shutting down 2008-10-30 17:13:10 +00:00
Arvid Norberg 7fd2fd4732 added performance warnings for when the IP overhead eats up the entire up- or download rate limit 2008-10-28 06:45:42 +00:00
Arvid Norberg 7d83bfb6b3 fixed pedantic warnings 2008-10-26 22:12:12 +00:00
Arvid Norberg c18825c8db fixed missing includes in header 2008-10-26 21:16:46 +00:00
Arvid Norberg 971f437b41 added num_pieces to peer_info. Fixes #385 2008-10-24 00:15:39 +00:00
Arvid Norberg dc6564fa11 applies ip filter to trackers as well 2008-10-22 19:40:32 +00:00
Arvid Norberg 0ed75c3f64 made nat-pmp generate alerts as well, just like upnp 2008-10-22 07:06:58 +00:00
Arvid Norberg 49c01d7754 moved UPNP_LOGGING out of upnp.cpp and added alerts for when upnp logs something 2008-10-22 01:12:14 +00:00
Arvid Norberg 2fbfca60fb #ifdef out parts of variant_stream that requires exceptions, when exceptions are turned off 2008-10-21 08:50:01 +00:00
Arvid Norberg 41d5abf0d8 exception related fixes. Avoiding functions that may throw in places where exceptions shouldn't be thrown 2008-10-21 08:45:42 +00:00
Arvid Norberg 535f668c5d simplified the file interface 2008-10-19 05:03:17 +00:00
Arvid Norberg f04e9e9875 made unchoke interval depend on piece size 2008-10-18 22:35:10 +00:00
Arvid Norberg 9bcd5be3fc replaced boost.lexical_cast with stringstream in alert message formaters to avoid throwing exceptions 2008-10-18 17:22:31 +00:00
Arvid Norberg 3d75732145 changed variant_stream to return a pointer instead of a reference when querying for underlying type (avoids exceptions) 2008-10-18 07:12:04 +00:00
Arvid Norberg 16d56eaee6 clears torrent stats when paused 2008-10-15 17:31:20 +00:00
Arvid Norberg 9a5e261c64 Fixed UPnP bug where the port and host would be re-used from the xml url when connecting to the control url 2008-10-14 07:19:46 +00:00
Arvid Norberg 399c4d6ac4 mutex fix for dht status reporting 2008-10-09 03:32:57 +00:00
Arvid Norberg b355541a7d applied patch from Sergei Vorobyov to allow changing the limit on outstanding alerts 2008-10-07 05:46:42 +00:00
Arvid Norberg 3144767632 fixed buffer overrun when calling get_download_queue 2008-10-05 07:23:46 +00:00
Arvid Norberg d4c206841b added support for bitcomet padding files. simplified storage read/write code. 2008-10-03 05:49:41 +00:00
Arvid Norberg 1092c558e4 counts newly started torrents as active up to 2 minutes, to give them a chance to start downloading. Active torrents are not considered slow in the auto manager. 2008-10-01 05:25:18 +00:00
Arvid Norberg ef42e8f77c fixed rename_file to work when the file hasn't been created yet. Fixed error reporting when rename_file fails. Updates the file in the torrent_handle when filename is updated 2008-09-30 23:37:42 +00:00
Arvid Norberg 47c476dc0a include TCP handshake overhead 2008-09-26 06:10:21 +00:00
Andrew Resch 4189e0b697 add peer_info::progress 2008-09-25 20:39:06 +00:00
Arvid Norberg 6d97d562f9 added another constructor to create_torrent that copies a torrent_info. 2008-09-24 17:05:12 +00:00
Arvid Norberg 1f1b3b560e fixed typo in torrent_info.hpp 2008-09-24 02:37:04 +00:00
Arvid Norberg 519fdfdb36 portability fix for udp_socket 2008-09-24 02:35:03 +00:00
Arvid Norberg 80e9e8d1cf changed torrent::set_metadata() to reduce code duplication in metadata extensions. Exposed torrent_handle::set_metadata() to the public interface 2008-09-24 02:32:33 +00:00
Arvid Norberg ba8163ca9c fixed bug in udp_socket when the sockets own lifetime was dependent on the callback 2008-09-22 23:43:21 +00:00
Arvid Norberg 1ac3b8298c report tracker bandwidth usage and include it in rate limiter 2008-09-22 00:15:05 +00:00
Arvid Norberg 48dad0e2ac fixed indentation 2008-09-21 23:25:09 +00:00
Arvid Norberg ea578a6acf adds ut_pex, ut_metadata and smart_ban by default in session constructor. Also starts upnp and nat-pmp by default. Fixes #399 2008-09-21 23:19:58 +00:00
Arvid Norberg 13b343c1af added assertions that the stats is updated properly when receiving and sending bytes on peer_connections 2008-09-21 17:12:26 +00:00
Arvid Norberg 8ffc345308 fixed crash when add_torrent was fed with invalid resume data 2008-09-21 02:08:04 +00:00
Arvid Norberg 0338510b9b added more bandwidth monitoring of DHT and TCP/IP overhead. added monitoring of the running DHT lookups 2008-09-20 17:42:25 +00:00
Arvid Norberg 67f1242836 added mutex to udp_socket and posts the callback instead of calling it directly 2008-09-19 17:31:16 +00:00
Arvid Norberg a62ce3bc1a made routing table support safe iterators on gcc 2008-09-16 17:21:24 +00:00
Arvid Norberg 166f761df3 fixed DHT bug where requests that timed out would be treated as transaction_id overflows and would slow down DHT lookups considerably. 2008-09-15 05:05:26 +00:00
Arvid Norberg 3077fdcb6a fix crash when tracker connections fails in the constructor (used to be the case for scrape when there were no url transform from announce to scrape) 2008-09-07 10:03:59 +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 7f143791d5 added get_storage_impl() to torrent_handle 2008-09-04 16:20:19 +00:00
Arvid Norberg c88071ae10 fixed race when adding router nodes to the dht (router nodes should be added before it's started) 2008-09-02 06:37:40 +00:00
Arvid Norberg 92ed7fb364 fixed metadata extension issues 2008-08-29 17:21:56 +00:00
Arvid Norberg 5486e17b15 fixed bug in bitfield and updated test 2008-08-29 12:19:21 +00:00
Arvid Norberg 9b38724417 made dump torrent create magnet links 2008-08-27 18:44:35 +00:00
Arvid Norberg e9045cc1df fixes bug where priorities where lost when force-rechecking. 2008-08-25 22:32:50 +00:00
Arvid Norberg d2e5f3919d changed alert messages to use asio to string conversion for endpoint (fixes missing [] on IPv6 addresses) 2008-08-25 21:21:38 +00:00
Arvid Norberg dd318fb9a3 fixed warnings in bencode 2008-08-21 11:40:49 +00:00
Arvid Norberg e58485822b optimized encryption 2008-08-20 23:05:12 +00:00
Arvid Norberg 37389e4fe4 added test to measure peak download rate and introduced performance warning alert when disk buffer limit and request limit are reached 2008-08-19 15:04:14 +00:00
Arvid Norberg 29bf61d364 fixed state changed alert since 'connecting' was removed 2008-08-18 18:04:04 +00:00
Arvid Norberg 9bae670ac7 fix build with boost-1.36 2008-08-16 21:11:27 +00:00
Arvid Norberg 015ab223c9 added asserts for timers 2008-08-16 21:07:45 +00:00
Arvid Norberg 7d47ed54eb removed connecting_to_tracker state 2008-08-03 15:32:15 +00:00
Arvid Norberg cbf8e6f3b1 introduced TORRENT_NO_DEPRECATE, to disable deprecated functions. Made example not use deprecated functions. Documented magnet uri related functions. 2008-08-03 15:14:08 +00:00
Arvid Norberg 18b14e56df made the minimum announce interval configurable 2008-08-01 22:34:37 +00:00
Arvid Norberg 854f029fc1 fixed warning on gcc 4.3 2008-07-30 06:41:05 +00:00
Arvid Norberg 4aee6df9d4 fixed create_torrent 2008-07-22 13:01:22 +00:00
Arvid Norberg b22082b77b add set_priv and priv to create_torrent 2008-07-21 17:04:31 +00:00
Arvid Norberg df27541904 only use wpath on windows 2008-07-20 16:13:52 +00:00
Arvid Norberg c605c8021f added file priority functions 2008-07-20 16:00:08 +00:00
Arvid Norberg 417855848f merged file_win.cpp and file.cpp (removed the need for file_win.cpp). The file is no longer a pimpl 2008-07-20 11:14:54 +00:00
Arvid Norberg 0433a32857 fixed msvc warning 2008-07-20 10:35:51 +00:00
Arvid Norberg 7607034ab6 exposed upload_only in peer_info 2008-07-19 07:57:43 +00:00
Arvid Norberg 21dff61cb5 clears read cache when paused. Saves memory 2008-07-18 15:31:22 +00:00
Arvid Norberg 3b35b2c2e3 added dict_find_string to lazy_entry 2008-07-18 13:48:09 +00:00
Arvid Norberg 2ab80ddc3a moved the error_category to error_code.cpp and added the new files (error_code.{hpp|.cpp}) to the Jamfile and makefiles 2008-07-18 10:22:16 +00:00
Arvid Norberg 429a118dd2 keep track of interest more tightly. better support for upload_only 2008-07-18 10:03:42 +00:00
Andrew Resch 755567a7a0 Fix building with msvc 2008-07-17 23:56:58 +00:00
Arvid Norberg 3cb1369385 improved error reporting of file errors (uses boost.system's error_code). Now permission errors are properly reported when checking files 2008-07-17 23:41:46 +00:00
Arvid Norberg 72b99059e7 optimized policy::peer 2008-07-14 11:15:35 +00:00
Arvid Norberg 7541d9d246 don't allow force_tracker_request when paused 2008-07-12 18:45:58 +00:00
Arvid Norberg ff6cbbc6b6 added torrent_handle::clear_error() to retry a torrent that is in an error state (torrent_status::error is set) 2008-07-12 17:00:52 +00:00
Arvid Norberg 9bf25d1006 changed the definition of file_progress and deprecated the old function. Python bindings only exposes the new one 2008-07-12 13:38:22 +00:00
Arvid Norberg e49c015c92 fixed torrent alert assert 2008-07-12 11:04:23 +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 486fb1082d reports event in tracker_announce_alert 2008-07-11 12:00:29 +00:00
Arvid Norberg 9c9c13c7bb exposed read cache info as well as write cache 2008-07-11 10:29:26 +00:00
Arvid Norberg 589e098002 fixed parole mode with timeouts and made it optional 2008-07-11 09:23:22 +00:00
Arvid Norberg de8f676b98 increase timeouts 2008-07-11 09:02:05 +00:00
Arvid Norberg 96ca475652 added redundant and failed byte counters to session 2008-07-11 07:30:04 +00:00
Arvid Norberg 680dab5a67 make 'snubbed' more sticky by only giving one request_timeout back when a new block is being received 2008-07-10 19:31:22 +00:00
Arvid Norberg 1bdb6afebd fixes to previous connection timeout check-in 2008-07-10 10:58:30 +00:00
Arvid Norberg d06f125513 improved accuracy of the file progress report to include completed blocks from incomplete pieces (but not partial blocks) 2008-07-09 10:45:07 +00:00
Arvid Norberg 55a944c014 added a unwanted_block_alert 2008-07-08 18:41:04 +00:00
Arvid Norberg 5c749bcb3c added base class for peer_alerts and turned more alerts into peer_alerts with more information about the peer that generated it 2008-07-08 09:30:10 +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 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
Arvid Norberg ecb538b4b2 added alert for torrent state changes. Fixes #360 2008-07-03 10:05:51 +00:00
Arvid Norberg 66a7f98d84 fixed missing torrent error state 2008-07-02 21:27:16 +00:00
Arvid Norberg af0ebb519c added copyright notices in files missing them 2008-07-01 18:59:13 +00:00
Arvid Norberg 40d7e2ce75 moved load_file into torrent_info.cpp to make it available on windows too. Fixed the exception free path in torrent_info 2008-07-01 11:00:00 +00:00
Arvid Norberg 10f5418ce7 switched extension handshake parsing over to use lazy_bdecode for improved performance 2008-07-01 08:04:12 +00:00
Arvid Norberg 9c84908bb9 switched resume data parsing over to use lazy_bdecode. Improves memory allocation performance, especially noticable when heap allocations are expensive. Makes it more practical to run with malloc debug. Changed resume data interface to take a vector as opposed to a parsed structure 2008-06-30 23:14:31 +00:00
Arvid Norberg d396ab7b17 added pause and resume to the session. Fixes #349 2008-06-29 19:08:30 +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
Arvid Norberg b27b2b6e71 fixed typo 2008-06-28 17:58:15 +00:00
Arvid Norberg d132dd45e3 removed exceptions from pe_crypto and improved error handling 2008-06-28 10:10:05 +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 4d380c57d7 made bdecode not throw 2008-06-23 22:00:27 +00:00
Arvid Norberg 87660b96c5 renamed announce_piece to piece_passed and moved it to piece_finished and piece_failed 2008-06-23 18:54:58 +00:00
Arvid Norberg c210b11b80 better fix for failing pieces 2008-06-23 14:45:01 +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 0f0ea269bc added an active torrent limit 2008-06-21 12:31:28 +00:00
Arvid Norberg d0e579826c added an option to not count inactive torrents against the limits for auto managed torrents 2008-06-21 09:15:29 +00:00
Arvid Norberg b183b2e593 made it possible to export the upnp state and insert it into a different upnp instance 2008-06-20 16:14:10 +00:00
Arvid Norberg d2bde64e71 makes sure a torrent doesn't have too many pieces than can be handled. Fixes #61 2008-06-19 11:28:34 +00:00
Arvid Norberg 0241bf78ce added is_sequential_download to torrent_handle 2008-06-17 08:30:04 +00:00
Arvid Norberg 6c24bd0774 moves force checked torrents to the end of the queue. Fixes #350 2008-06-16 22:27:14 +00:00
Arvid Norberg 3e000a3984 fixed save path updates when moving torrents. Fixes #310 2008-06-15 20:52:46 +00:00
Arvid Norberg 5923ef5b43 fixed file check ordering to respect the queue position. Fixes #350 2008-06-12 21:22:24 +00:00
Arvid Norberg 52f6204288 simplified the disk-io mutexes and made it more efficient. separated the disk io mutex into a buffer mutex, queue mutex and the piece cache mutex. 2008-06-12 04:40:37 +00:00
Arvid Norberg 6e69480176 disk_io_thread fixes. Properly destructs torrent objects while disk io mutex is not locked. Properly flushes disk cache when closing, and aborting read and file check jobs. Fixes #334 2008-06-09 04:46:34 +00:00
Andrew Resch 3ea075f169 Add torrent_resumed alert 2008-06-08 05:14:40 +00:00
Arvid Norberg a1857f9699 added force_recheck to torrent_handle. Fixes #120 2008-06-07 16:24:56 +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 9d1e77dc88 optimized away torrent::m_have_pieces (#62) and added some documentation on bitfield. The piece picker is now constructed with the torrent, but still freed when turned into a seed 2008-06-07 02:58:28 +00:00
Arvid Norberg bcc24bf831 added has_incoming to torrent_status per #315 2008-06-05 18:19:03 +00:00
Arvid Norberg 4709d202e1 fixed unicode issue in storage 2008-06-04 07:57:07 +00:00
Arvid Norberg b4c160e723 fixed bug in web_peer_connection where an incorrect number of bytes would be reported as downloaded 2008-06-03 15:17:09 +00:00
Arvid Norberg c883f4475c saves statistics from the last second from peer connections that are disconnected. Partly fixes #339 2008-06-03 05:21:00 +00:00
Arvid Norberg 31c9d378f5 completed queuing. It is now possible to change and query queue position of torrents. 2008-05-29 03:37:19 +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 3910fe78de separated file_storage from torrent_info and create_torrent 2008-05-28 08:44:40 +00:00
Arvid Norberg cf37d8544d fixed boost version check. Fixes #337 2008-05-28 07:52:25 +00:00
Arvid Norberg 68c31e48dc replaced vector<bool> with a custom bitfield type 2008-05-28 02:35:02 +00:00
Arvid Norberg dbb625a910 torrent_info fixes. make_torrent now builds 2008-05-20 09:49:40 +00:00
Arvid Norberg 31ab7f9773 boost 1.35 related fixes 2008-05-20 09:45:55 +00:00