Commit Graph

379 Commits

Author SHA1 Message Date
Arvid Norberg 2014e312b1 exposed connection_candidates in torrent_status and made a small optimization to not attempt to connect peers on swarms that don't have any connect candidates 2008-03-29 18:47:24 +00:00
Arvid Norberg 48127a8f6b added enum_if example to the makefile to be part of releases 2008-03-17 02:40:14 +00:00
Arvid Norberg 9d3b60edb7 added support to bind outgoing connections to specific ports (might be useful to do traffic shaping) 2008-02-28 07:34:07 +00:00
Arvid Norberg e48e52770b more rendering fixes in client_test 2008-02-28 03:24:38 +00:00
Arvid Norberg 60add53428 fixes printing issue in client_test 2008-02-28 02:46:01 +00:00
Arvid Norberg ef9ef674d5 added read cache. Not fully configurable yet 2008-02-22 04:11:04 +00:00
Arvid Norberg 4f6c77e1d5 made client test use the default file storage 2008-02-17 20:31:02 +00:00
Arvid Norberg 7e83c3fc51 changed storage interface to not require exceptions 2008-02-14 03:48:20 +00:00
Arvid Norberg 6c552db68e added disk cache expiration 2008-02-10 00:58:25 +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 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 f783d4d869 made the piece bar work in windows 2008-01-24 03:59:08 +00:00
Arvid Norberg 127d3e6ad5 bandwidth limiter fixes. proper priority that cannot starve connections 2008-01-17 17:40:46 +00:00
Arvid Norberg b19bf337bf generalized peer read/write state 2008-01-13 23:46:43 +00:00
Arvid Norberg 5d196ed555 auto upload slots. opens up more slots if upload rate is not met. On by default 2008-01-13 11:18:18 +00:00
Arvid Norberg 72eee8838c sets default per-torrent download limit to infinite in client_test 2008-01-13 10:10:44 +00:00
Arvid Norberg 95c853e107 fixed peer-info header alignment in client_test 2008-01-13 06:31:33 +00:00
Arvid Norberg dad00f68cd prints out default gateway in example 2008-01-11 09:58:40 +00:00
Arvid Norberg f36e6a6c4f proper default gateway discovery 2008-01-11 09:38:05 +00:00
Arvid Norberg 72edfc2ee7 improved network interface enumeration and upnp device filtering 2008-01-11 06:49:37 +00:00
Arvid Norberg a8f07edffa added download rate limit per torrent 2008-01-10 23:12:58 +00:00
Arvid Norberg 3a727e99ff expose more info through peer_info 2008-01-10 22:13:23 +00:00
Arvid Norberg 1d6e0f5bf6 bandwidth request block size optimization 2008-01-07 04:47:20 +00:00
Arvid Norberg 4d8833bc35 added total stats to client_test 2008-01-06 20:16:46 +00:00
Arvid Norberg 5b2f1d70e8 per-torrent upload rate limit fix for client_test 2008-01-03 08:17:17 +00:00
Arvid Norberg 1aa9a5b041 added option to limit upload rate per torrent to client_test 2008-01-02 18:22:34 +00:00
Arvid Norberg dfd563dfbb made most examples build without exception support 2007-12-30 01:59:10 +00:00
Arvid Norberg f9e20ed9b1 removed leftover dead code from client_test 2007-12-27 06:23:37 +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 7a393426b1 made client test not use a deprecated function. fixes #229 2007-12-15 23:35:25 +00:00
Michael Wojciechowski bce53063ab Changed configure script to not to modify LIBS, when checking for dependencies. Changed libtorrent.pc.in again, since the libraries used were
wrong, because $LIBS was used. Corrected Makefile.am in test, examples and src.
2007-12-14 20:53:56 +00:00
Arvid Norberg b2dc035a54 support for magnet links in client_test 2007-12-11 20:02:55 +00:00
Arvid Norberg fff87a6845 added m4 script for boost iostream and added ut_metadata to makefile 2007-12-08 22:02:59 +00:00
Arvid Norberg 20621cae02 added magnet-uri functions and a base32 decode function 2007-12-03 06:03:16 +00:00
Arvid Norberg 1cc0118c9c supports retry for web seeds that respond with 503 2007-11-27 03:37:47 +00:00
Arvid Norberg 4d19f7ff0f storage optimization. introduced a nother allocation mode: sparse. Now there is allocate, compact and sparse. Unless compact is used, the memory structures used to keep track of pieces are no longer allocated. sparse storage mode is now the default 2007-10-08 20:01:36 +00:00
Arvid Norberg f658686d6d reverted incorrect check-in of client test 2007-10-02 19:46:14 +00:00
Arvid Norberg 3dcae188fb policy now has a map of peers instead of a flat list, makes it more efficient to do lookups 2007-10-02 19:11:04 +00:00
Arvid Norberg 18a87916e6 fixed bug in client_test 2007-10-02 18:52:27 +00:00
Arvid Norberg 973e7be386 added router_for_interface along with a proper windows implementation. NAT-PMP support is now good on windows 2007-10-01 17:21:19 +00:00
Arvid Norberg 6fd42631c0 windows fixes for client_test 2007-10-01 17:17:49 +00:00
Arvid Norberg 09c1e0f007 client_test fix 2007-09-27 16:14:24 +00:00
Arvid Norberg 587d40e1ae updates to enum_net 2007-09-20 16:25:07 +00:00
Arvid Norberg 01c20353a4 added IP to client_test 2007-09-20 01:21:43 +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 c8088459a0 made torrent_info reference counted and held by a boost::intrusive_ptr 2007-09-01 03:00:31 +00:00
Arvid Norberg 4137c0885a fixed pausing issue introduced in the changed add_torrent 2007-08-22 18:37:20 +00:00
Arvid Norberg ee01d7bb11 added optimistic unchoke flag to client_test 2007-08-22 05:02:45 +00:00
Arvid Norberg 6c50adabfc updated piece_picker fix and added another invariant check to policy 2007-08-21 01:17:42 +00:00
Arvid Norberg 52a2df2d3f added first and last piece to dump_torrent 2007-08-03 08:43:22 +00:00
Arvid Norberg ce8acd0911 added compiler flag to disable inclusion of boost.serialization headers 2007-08-01 07:26:10 +00:00
Arvid Norberg 54aa76f940 exposed queued disk bytes in peer_info 2007-08-01 06:11:11 +00:00
Arvid Norberg 4c8c686a64 made client_test build on linux 2007-07-22 23:24:27 +00:00
Arvid Norberg 1381a008c4 added a piece bar to client_test 2007-07-09 00:00:35 +00:00
Arvid Norberg 4771f323f6 added invariant checks for peer_counter in block_info. added bytes_progress and block_size to block_info (to allow a more detail download progress display). Updated client_test to show download progress per block and also to have a separate color for 'multi blocks' (i.e. blocks that have been requested from more than one peer) 2007-07-08 20:45:42 +00:00
Arvid Norberg 9f24c6d79c added option to link against installed boost libraries instead of building from source (boost=system and boost=source, system is default). Removed dependency in boost serialization headers 2007-07-07 21:27:36 +00:00
Arvid Norberg 46bf2970fb fixes to remote peer download rate etimation 2007-06-14 21:47:00 +00:00
Arvid Norberg 97099dc0ca added more fixes to Jamfile in order to make it build on windows 2007-06-13 17:36:26 +00:00
Arvid Norberg fa1a37e649 updated Jamfile to support openssl on windows, added missing files to makefiles and made test_pe_crypto build when encryption is disabled 2007-06-13 01:48:24 +00:00
Arvid Norberg 3b8670626a merged back async_io branch into trunk 2007-06-10 20:46:09 +00:00
Arvid Norberg a3a2217276 an approximate peer download rate is now in peer_info 2007-06-07 00:05:18 +00:00
Arvid Norberg 273f8bd921 merged back encryption branch to trunk 2007-06-06 00:41:20 +00:00
Arvid Norberg 31247c046a supports turning on and off upnp, natpmp and lsd. All ofthem are now off by default 2007-05-31 00:21:54 +00:00
Arvid Norberg bb71832f5f exposed some more peer info 2007-05-25 19:42:10 +00:00
Arvid Norberg c48bba388e formatting fixes in client test, and made the test build when resolve countries is disabled 2007-05-24 20:23:14 +00:00
Arvid Norberg 1eb819b901 fix to previous optimization in client_test 2007-05-24 00:52:03 +00:00
Arvid Norberg 4bcf8b53ff string operations optimizations in client_test 2007-05-23 07:39:21 +00:00
Arvid Norberg d7ed474a46 interface update to client_test 2007-05-09 20:06:53 +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 f41fd7d303 added catch blocks to lsd. changed bind expressions to use operators 2007-04-29 20:49: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 094dc1065c some boost 1.34 preprocessor conditions and fixed assert in piece_picker 2007-04-23 17:14:40 +00:00
Arvid Norberg 849db39472 added peer_blocked_alert which is generated when a peer is blocked by the IP filter. Fixed the ip-filter parsing in client_test and made it report the peer_blocked_alert. Added documentation. 2007-04-17 05:56:43 +00:00
Arvid Norberg b05abc76f4 fixed time formatting in client_test 2007-04-15 17:44:06 +00:00
Arvid Norberg c54f702e65 fixed fill character in client_test 2007-04-14 23:59:09 +00:00
Arvid Norberg f16e419abd fixed proper formatting of announce count down in client_test 2007-04-14 21:03:14 +00:00
Arvid Norberg a22ad5ad33 added failcount to peer_info. fixes #31 2007-04-13 20:19:04 +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 0863bc1aa6 removed the dependency on the compiled boost.date_time library 2007-04-10 09:11:32 +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 09fc62a289 removed excutable flags from examples 2007-03-21 08:47:13 +00:00
Arvid Norberg d08ca8c4e6 made the timestamps local instead of universal in client_test 2007-03-16 23:24:30 +00:00
Arvid Norberg 81ad74cbcd fixes related to nat port mapping and having dht and bittorrent listen on the same port number 2007-03-16 21:45:29 +00:00
Arvid Norberg a6b1583d3f fixes to natpmp to take listen interface into account. added colors to the log in client_test 2007-03-16 21:04:58 +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 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 2dbfa156d3 client test now always uses dht. fixed problem with the dht logging and updated dht extension docs. 2007-03-08 21:42:37 +00:00
Arvid Norberg 0253004ab6 improved client_test's error reporting for web seeds 2007-03-07 00:10:47 +00:00
Arvid Norberg be574bcc33 removed old commented out code. polished client_test output 2007-03-02 06:49:00 +00:00
Arvid Norberg 8f1128f540 more dht fixes. polished client test output some 2007-03-02 05:02:12 +00:00
Arvid Norberg 83c2039ff7 fix to previous dht fix. removed some deprication warnings on msvc-8. various fixes 2007-03-02 01:16:59 +00:00
Arvid Norberg df46401c9c added docs for python binding. Fixed warning in python binding. 2007-02-20 04:32:13 +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 69ef67d71e made a common base class for torrent alerts. Made the bandwidth quota block size variable depending on the limit 2007-01-16 05:05:52 +00:00
Arvid Norberg a26e7133ca correction of previous bugfix 2007-01-10 17:39:24 +00:00
Arvid Norberg f840f4529d bugfix 2007-01-10 17:34:53 +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 7a9e7d112e added max upload slots limit 2007-01-07 18:01:12 +00:00
Arvid Norberg 08e15e2f0c updated Makefile for latest asio, fix in peer exchange, updated client_test output 2007-01-02 17:44:15 +00:00
Arvid Norberg c586b3dc91 modified client_test arguments 2007-01-02 14:16:26 +00:00
Arvid Norberg d58c6d2e31 fixed so that both session constructors initializes boost.filesystem. Fixed the case where the file check throws exceptions, the torrent is no longer removed, but paused 2006-12-30 23:02:21 +00:00
Arvid Norberg cbf6bfe806 the torrent maker now skips hidden files 2006-12-20 23:02:41 +00:00
Arvid Norberg ddfadaf6e4 made the interface more space efficient 2006-12-05 23:41:13 +00:00
Arvid Norberg b63c155c0d added uTorrent Peer exchange support, implemented by MassaRoddel 2006-11-26 17:44:51 +00:00
Arvid Norberg 51e3261dd0 the file pool has been moved to the session and its size can be controlled via session_settings. Added untested option to allow multiple connections from the same IP. 2006-11-14 15:53:38 +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 84aa3cf421 made client_test build in msvc 2006-11-02 11:47:26 +00:00
Arvid Norberg 6f939b565b added necessary try catch block 2006-10-25 11:43:25 +00:00
Arvid Norberg c66165614e the dht uses the specified port now 2006-10-11 22:05:10 +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 57471d4b37 fixed bug in client_test where dht_state wasnt used 2006-09-29 14:59:59 +00:00
Arvid Norberg 065c437d31 fixed bug in client_test where dht_state wasnt used 2006-09-29 14:59:26 +00:00
Arvid Norberg c687c428c4 removed incorrect asserts. added ip to the extension header. removed the mandatory libtorrent suffix on the user agent 2006-09-28 00:49:40 +00:00
Arvid Norberg 910733f29e added proper support for dht router nodes (which are automatically used to bootstrap from, and won't get added to the routing table) 2006-09-27 17:20:18 +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 e8c43c868f updated dump_torrent examples to print DHT nodes from the torrent file 2006-09-03 19:53:19 +00:00
Arvid Norberg bdf1bbc8f4 changed the file format for storing the DHT routing table to support IPv6. Changed the address used to be IPv4-IPv6 independent (ip_filter still onlt works with IPv4). Added default boost-build features to the building documentation. Completed the jamfile's support for building without DHT support. Updated documentation with these changes. 2006-09-01 03:06:00 +00:00
Arvid Norberg b1411fcdf7 the DHT can now change listen port runtime, and the same listen interface will be used for the DHT as is used for the torrent listen port. The DHT buckets are refreshed slightly more evenly distributed over time. 2006-08-30 00:09:58 +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 eef4ffa18c preliminary http proxy support for web seeds, bumped version number 2006-07-27 18:07:51 +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 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 3e39b90158 updated makefiles to hopefully install the headers in the correct place. Updated docs to use boost 1.33.1 in examples. Changed libtorrent version to 0.10 and updated ChangeLog to prepare for release. 2006-06-25 00:12:18 +00:00
Arvid Norberg 903e11e458 moved the asio headers into the include directory, to have them installed when libtorrent is installed. improved the complexity of torrent_info::map_file(), It's now O(1). 2006-06-17 22:04:25 +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 11013054d6 updated simple_client example 2006-05-21 00:40:41 +00:00
Arvid Norberg e6bb265d94 replaced http_settings with session_settings and introduced more settings 2006-05-20 23:24:19 +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 41810b1166 merged back the asio development branch 2006-04-25 21:04:48 +00:00
Arvid Norberg 2d70a9b5bf some more steps in the direction of getting it to build on vc7 2006-01-10 00:38:52 +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 477d5ec238 merged in differences from release branch 2005-11-18 01:12:21 +00:00
Arvid Norberg 75dafc5d1b peers that throw in the connection attempt are now removed from the policy's list. added more asserts to session. disabled SIGPIPE on darwin 2005-11-07 02:18:39 +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 0c1c9d375d client_test works better on windows now 2005-10-19 18:00:17 +00:00
Arvid Norberg 55144fc3f4 all functions on torrent_handle are now const. restored r, p, u keys in client_test 2005-10-19 13:58:41 +00:00
Arvid Norberg 4f295074c6 client_test can now monitor a directory for .torrent files and automatically start and stop downloads 2005-10-19 00:50:38 +00:00
Arvid Norberg d3996ccfb9 added metadata_failed_alert and allcoating torrent state 2005-10-17 13:45:53 +00:00
peerkoel d27ace98ba The examples/client_test program depends on Boost::Regex and
Boost::ProgramOptions. The configure script detects these and builds the
client_test if the necessary libs are found.
2005-10-16 19:13: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 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 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