Commit Graph

382 Commits

Author SHA1 Message Date
Arvid Norberg 53a62344ca fix port mapping functions in session 2013-12-31 22:24:56 +00:00
Arvid Norberg 4f189e921d mark some expensive parts of invariant checks as expensive and disabled by default. introduce undead_peers to destruct all peer_connections in the network thread. they hang around while waiting for all outstanding disk jobs to complete. make the asio-debugging output a bit prettier 2013-12-05 07:42:32 +00:00
Arvid Norberg 629baa3622 reorder some structs to reduce padding 2013-11-26 02:00:02 +00:00
Arvid Norberg cbe3a72a6e merged i2p fix from RC_0_16 2013-10-27 19:56:37 +00:00
Arvid Norberg 4ac3d286a5 back port check to not destruct session_impl from its own thread 2013-09-29 19:37:57 +00:00
Arvid Norberg 89c3db477d merge build fix with C++11 from RC_0_16 2013-09-25 19:44:29 +00:00
Arvid Norberg 0f57615ea3 attempt at fixing shut-down hang 2013-08-21 15:55:24 +00:00
Arvid Norberg e7db8d37a2 merge deprecation of wstring overloads from RC_0_16 2013-08-02 05:03:22 +00:00
Arvid Norberg a401aa0337 cleaned up public interface by removing some symbols from the exported set 2013-07-19 19:06:27 +00:00
Arvid Norberg 520b8bfcd1 move out alert_manager to its own compilation unit. remove TORRENT_DISABLE_EXTENSIONS from affecting the public API 2013-04-09 02:38:11 +00:00
Arvid Norberg d21243dc9f make release asserts build 2013-03-27 23:46:13 +00:00
Arvid Norberg a2a4b61b5d fix library ABI to not depend on logging being enabled 2013-03-10 09:19:58 +00:00
Arvid Norberg a0caa0f4b2 disable invariant_check functions when invariant checks are disabled 2013-02-25 04:13:46 +00:00
Arvid Norberg 5b48490005 fix logging build 2013-02-05 06:50:38 +00:00
Arvid Norberg f73fa778d6 slight refactoring to remove a dependency on session_impl in rpc_manager 2013-02-05 04:18:44 +00:00
Arvid Norberg d6fecf4c34 make condition variable c++11 compatible 2013-01-21 22:52:34 +00:00
Arvid Norberg c14916e119 unify session plugins and extension functors (internally) 2013-01-07 04:19:19 +00:00
Arvid Norberg cd4b38cfc3 fix bug in disconnect candidate torrent function 2013-01-02 08:09:21 +00:00
Arvid Norberg 970ddba29b refactor find_disconnect_candidate_torrent to match libtorrent_aio 2013-01-02 07:39:02 +00:00
Arvid Norberg aab59d04c7 improve the external IP discovery to work with multiple external IPs (specifically IPv4 and IPv6) 2013-01-01 23:12:16 +00:00
Arvid Norberg ac5a9e9882 introduce global connection priority for improved swarm performance 2012-12-31 06:54:54 +00:00
Arvid Norberg 65e02c23e8 improve support for loading torrents out of resume files 2012-11-08 02:07:10 +00:00
Arvid Norberg f3ec86169e merged swarm startup optimization from libtorrent_aio 2012-11-03 03:50:12 +00:00
Arvid Norberg 01f70bfd84 add session logging function 2012-10-18 15:14:18 +00:00
Arvid Norberg 9ed60479ce merged udp socket fix from RC_0_16 2012-10-07 23:34:44 +00:00
Arvid Norberg 35032a6950 merge verbose logging feature from libtorrent_aio 2012-10-06 23:45:36 +00:00
Arvid Norberg 83754b3427 merged post_torrent_updates assert from libtorrent_aio 2012-10-06 14:31:14 +00:00
Arvid Norberg 32b4b5926a merged fix from RC_0_16 2012-09-30 19:35:08 +00:00
Arvid Norberg 5e2ff1a246 merged logging cleanup from RC_0_16 2012-09-27 23:04:51 +00:00
Arvid Norberg 0685fb91bd DHT throttling fix 2012-08-03 05:13:40 +00:00
Arvid Norberg 7c7b927e07 improve connection distribution fairness between torrents 2012-07-04 20:41:22 +00:00
Arvid Norberg 96aa1f162b fix for udp_socket observers and some dht warning fixes 2012-06-30 15:30:38 +00:00
Arvid Norberg d73bbf5053 clean up the udp socket and its consumers by adding an observer interface and have the udp tracker, utp socket manager and dht tracker subscribe to it instead of going through the session_impl. This probably improves performance a tiny bit but primarily improves modularization and testability 2012-06-22 04:21:20 +00:00
Arvid Norberg 2b9b2a188a remove uTP delayed ack and instead send acks when the udp socket has been drained. simplify the udp socket to use null_buffers and allocate less memory for buffers. this also eliminated the race condition when resizing the udp socket receive buffer which greatly simplified it 2012-06-21 15:05:57 +00:00
Arvid Norberg 3c0e7e0a4a keep counters of the number of active downloading and finished torrents in order to have a cheap way of prioritizing peer connections for downloading torrents over finished ones 2012-06-21 03:51:39 +00:00
Arvid Norberg cec9a16cc1 back-ported observer for set_external_ip for DHT 2012-04-30 06:30:35 +00:00
Arvid Norberg 918dce1341 back-ported part of the alert_dispatcher patch for the DHT 2012-04-30 05:39:35 +00:00
Arvid Norberg 9b8ce67302 fixed bug in external IP voting 2012-03-19 00:31:21 +00:00
Arvid Norberg a2521bd23c fix a bunch of issues to properly support dynamic linking of libtorrent with visibility=hidden. Still requires a small patch to boost 2012-03-18 23:31:04 +00:00
Arvid Norberg b58a96d76b log stats of incoming piece requests 2012-03-09 06:24:01 +00:00
Arvid Norberg ccf9c5a0fd log more stats 2012-03-02 08:52:54 +00:00
Arvid Norberg 3ef9190b01 fix export for settings_map symbol for python binding 2012-02-25 08:02:52 +00:00
Arvid Norberg eef0f03343 fixed session logger destruction order issue 2012-02-21 06:47:08 +00:00
Arvid Norberg 679abf2e57 this time, actually remove the encrypted torrent (AES-256 encrypted peer connections) 2012-02-09 06:47:22 +00:00
Arvid Norberg ef1d8b5921 fix build 2012-01-20 06:07:19 +00:00
Arvid Norberg ed56520d24 more asserts around state updates 2012-01-20 05:40:32 +00:00
Arvid Norberg 4a40e68a82 landed ssl branch back into trunk 2012-01-14 16:04:25 +00:00
Arvid Norberg 152cee19f1 add compile-time feature to enable logging of all peer requests 2011-12-29 12:15:29 +00:00
Arvid Norberg cab1f3d207 fix issue when peer list is full, previously we would sometimes reject new connections 2011-11-24 17:50:57 +00:00
Arvid Norberg fdc5e7e8b2 keep track of where redundant downloads come from. make the timing out of block requests more reasonable in an attempt to actually complete pieces from other peers when stuck on a slow one 2011-11-16 02:29:59 +00:00
Arvid Norberg 0320546fee fix build 2011-11-15 06:47:02 +00:00
Arvid Norberg c4232065d8 introduced a more scalable API for torrent status updates (post_torrent_updates()) 2011-11-15 02:34:00 +00:00
Arvid Norberg 96adfc2ad5 windows build fixes 2011-11-13 05:51:03 +00:00
Arvid Norberg 15f20c887d fix msvc build 2011-10-22 17:44:40 +00:00
Arvid Norberg 7d20c0b0c4 log CPU usage of network thread 2011-10-17 17:12:08 +00:00
Arvid Norberg 8b6522a763 log buffer sizes passed to read() and write() at the socket layer (to identify performane problems) 2011-10-17 06:54:02 +00:00
Arvid Norberg aab4cb6937 log number of asio messages passed through the queue per second (to track down performance issue) 2011-10-17 05:17:21 +00:00
Arvid Norberg 01405f32ee added async_add_torrent for increased performance when adding many torrents (no documentation yet though) 2011-10-12 10:27:17 +00:00
Arvid Norberg 2741563711 set alert_mask early 2011-10-08 09:52:36 +00:00
Arvid Norberg 469414d486 initial BitTorrent over SSL support 2011-09-12 03:51:49 +00:00
Arvid Norberg 92bcb9ebfd feature to encrypt peer connections with a secret AES-256 key stored in .torrent file 2011-09-05 05:50:41 +00:00
Arvid Norberg bf9d864dd2 stronger low-pass filter for iops reporting 2011-07-04 05:52:15 +00:00
Arvid Norberg de3ea9214a log a low-pass filtered iops to stats log 2011-07-03 17:21:45 +00:00
Arvid Norberg 90d8030269 log VM stats alongside the session stats 2011-06-28 22:20:34 +00:00
Arvid Norberg 3ba914b419 fix build 2011-06-14 06:10:35 +00:00
Arvid Norberg 88fa0b9393 optimize send buffer allocation and deallocation by not allowing requiring contiguous buffers 2011-05-19 02:41:28 +00:00
Arvid Norberg a73960aa5a support release asserts 2011-05-08 09:04:59 +00:00
Arvid Norberg 22f20253f8 support turning logging on and off during run-time when built with stats logging 2011-04-06 06:27:42 +00:00
Arvid Norberg ddd21cb526 missing change from last check-in 2011-03-27 20:46:20 +00:00
Arvid Norberg e9459b4df8 rss fixes 2011-03-23 02:46:22 +00:00
Arvid Norberg 0b25b87593 add a bunch more stats logged to session stats 2011-03-17 05:31:06 +00:00
Arvid Norberg 6db11079c8 add performance warning when disk write queue exceeds half of the write cache size 2011-03-16 07:45:51 +00:00
Arvid Norberg 27c1bc632d introduced pop_alerts() which pops the entire alert queue in a single call 2011-03-14 02:59:46 +00:00
Arvid Norberg c21100a9a5 log failed and redundant bytes 2011-03-13 04:34:57 +00:00
Arvid Norberg 03a7442532 add disk cache stats to session stats 2011-03-11 07:37:12 +00:00
Arvid Norberg f90f9f6609 fixed alert queue size limit bug when restoring setting from session state 2011-03-07 00:36:51 +00:00
Arvid Norberg 019b682cf9 fixed logging build 2011-03-04 07:00:27 +00:00
Arvid Norberg 0aff6803fb fix to IP filter exemptions 2011-03-02 17:37:10 +00:00
Arvid Norberg 513914050c fixed broadcast_lsd option. in trunk, redefined it to only broadcast every 8th packet 2011-02-16 10:16:52 +00:00
Arvid Norberg cb6f38f056 added session::listen_no_system_port flag to prevent libtorrent from ever binding the listen socket to port 0 2011-02-16 06:35:53 +00:00
Arvid Norberg 247ad31dc0 more disconnect granularity in stats logging 2011-02-14 05:38:59 +00:00
Arvid Norberg b471e40064 log more details on the cause of disconnects 2011-02-14 04:48:02 +00:00
Arvid Norberg 8bb71da401 disk write queue watermark fix 2011-02-13 22:27:02 +00:00
Arvid Norberg 4267f0ec5a rotate stats log every hour 2011-02-11 17:39:22 +00:00
Arvid Norberg e079907252 more end-game piece picker optimization (early exit) 2011-02-08 04:08:04 +00:00
Arvid Norberg 5df4e7edd9 added more piece picker stats 2011-02-07 00:51:20 +00:00
Arvid Norberg 3d616f894e end-game mode optimizations 2011-02-06 23:40:21 +00:00
Arvid Norberg ea0af55a46 log end-game mode stats with stats logging 2011-02-06 03:07:00 +00:00
Arvid Norberg 88663bfbde log more peer errors in stats log 2011-02-04 04:31:20 +00:00
Arvid Norberg bf77ee4199 extended stats logging 2011-02-03 06:22:22 +00:00
Arvid Norberg 5456f2ac91 provide more stats with stats builds 2011-02-03 04:09:50 +00:00
Arvid Norberg b842815710 added new session functions to more efficiently query torrent status 2011-02-01 09:48:28 +00:00
Arvid Norberg d393bb4097 report number of peers blocked on disk in session_status 2011-01-30 10:04:15 +00:00
Arvid Norberg 87dfdd4790 expanded plugin interface to support session state. improved re-request logic in ut_metadata extension. made max metadata size configurable 2011-01-29 10:37:21 +00:00
Arvid Norberg 021a774168 rate limit outstanding-disk performance warnings. don't throttle reading form peers because of disk congestion if the peer isn't downloading payload. Don't time out peers that are not waiting on the network 2011-01-23 02:09:54 +00:00
Arvid Norberg c223291fb4 added support for RSS feeds 2011-01-18 03:41:54 +00:00
Arvid Norberg ae41b2598b fix non-dht build 2010-12-29 02:17:44 +00:00
Arvid Norberg fc0bd8066b use a python python dictionary for settings instead of session_settings object (in python bindings) 2010-12-26 08:03:02 +00:00
Arvid Norberg 451c583023 more robust mechanism to determine external IP 2010-12-24 01:31:41 +00:00
Arvid Norberg 650f02eba7 fixed some windows build issues 2010-12-19 08:12:31 +00:00
Arvid Norberg d554cf88e6 optimized swarm startup time (shaved off about 1-2 seconds) by introducing torrent connection boost on the first tracker response for a torrent 2010-12-17 03:10:56 +00:00
Arvid Norberg 779014ddac support requesting UPnP and NAT-PMP routers for our external IP address 2010-12-05 20:40:28 +00:00
Arvid Norberg 1c99bf1de3 more network thread asserts to make sure only the network thread touches network-thread only data. Also delay starting the network thread until after the session constructor is done with its setup 2010-12-04 22:20:31 +00:00
Arvid Norberg e5f980d80d merged uTP branch into trunk (yay) 2010-11-29 01:33:05 +00:00
Arvid Norberg d1cb2d52ff fixed build issues with with vernose logging enabled 2010-11-26 20:44:48 +00:00
Arvid Norberg 7bd25edc9d generalize SSL support to also include web seeds (and in theory regular peers) 2010-10-12 08:57:43 +00:00
Arvid Norberg 21cbd1fac4 deprecated setters for max connections, max half-open, upload and download rates and unchoke slots. These are now set through session_settings 2010-10-09 19:09:38 +00:00
Arvid Norberg e6d400084e fix to start async operations inside the network thread to maintain thread safety within asio 2010-09-25 20:07:27 +00:00
Arvid Norberg b747cdab8a merged all proxy settings into a single one 2010-08-23 06:27:18 +00:00
Arvid Norberg f70fbb45c0 optimized struct layout of torrent_info. removed boost.date_type types from public interface (replaced by time_t) 2010-08-21 22:10:16 +00:00
Arvid Norberg afd5567969 session::set_tracker_proxy fix for udp trackers 2010-08-21 22:07:29 +00:00
Arvid Norberg fd5f1bf80b improved SOCKS5 support 2010-08-03 09:08:37 +00:00
Arvid Norberg a3d95677b0 fixed build errors from last check-in 2010-07-14 07:38:35 +00:00
Arvid Norberg 4e576f93fd removed the session mutex for improved performance 2010-07-14 04:16:38 +00:00
Arvid Norberg a0cef76bf2 fixed race condition around m_abort in session_impl 2010-06-24 21:43:00 +00:00
Arvid Norberg 26c4a819c8 removed the reuse-address flag on the listen socket 2010-06-17 17:14:56 +00:00
Arvid Norberg cdf05a9c9c moved UDP trackers over to use a single socket 2010-05-30 01:33:03 +00:00
Arvid Norberg 384bfdec48 added anonymous mode to disable some particular features that might give away the user's and the client's identity 2010-04-13 04:30:34 +00:00
Arvid Norberg 7e851818b1 support more fine-grained torrent states between which peer sources it announces too 2010-03-29 00:34:04 +00:00
Arvid Norberg c14042b29e remove unused declarations and added a small piece of documentation 2010-03-25 04:47:56 +00:00
Arvid Norberg b78aca9a53 fixed logging build 2010-03-20 09:35:45 +00:00
Arvid Norberg 79bd8fcd52 made the default cache size depend on the amount of physical RAM. and fixed disk thread settings update when loading through load_state 2010-03-10 07:14:10 +00:00
Arvid Norberg 013cef68e8 add flags to session::save_state to filter what is saved 2010-03-06 07:49:40 +00:00
Arvid Norberg 281b6368f7 deprecate old state saving functions, merge dht state with session state 2010-03-04 16:42:39 +00:00
Arvid Norberg 9d6cdb0c89 solaris build fixes 2010-03-03 07:42:51 +00:00
Arvid Norberg 5c02f3df59 fixed DHT bootstrapping issue 2010-02-14 07:46:57 +00:00
Arvid Norberg c050b22d8f optimized memory usage for torrent objects 2010-02-14 01:39:55 +00:00
Arvid Norberg fb47469834 experimental support for the BitTyrant choking algorithm 2010-02-09 03:04:41 +00:00
Arvid Norberg 088f4bf700 improved LSD performance and made the interval configurable 2010-02-05 08:23:17 +00:00
Arvid Norberg 859f412189 support an arbitrary number of optimistic unchoke slots 2010-02-02 18:39:32 +00:00
Arvid Norberg 3bc40b9980 fix builds for all combinations of stats and disk stats 2010-01-31 20:32:12 +00:00
Arvid Norberg d959331c1e renamed some torrent check queue related functions to be more descriptive 2010-01-17 21:42:14 +00:00
Arvid Norberg c9b594fde1 support sending suggest messages based on what's in the read cache. support 'explicit read cache' 2010-01-15 16:45:42 +00:00
Arvid Norberg d157af5305 build fixes 2009-12-28 20:59:34 +00:00
Arvid Norberg 25798ba1fa timer initialization fix 2009-12-13 16:32:07 +00:00
Arvid Norberg ff2063651b build fixes 2009-12-03 17:44:11 +00:00
Arvid Norberg 1d04c4dcd0 added session saving and loading functions 2009-12-03 05:11:57 +00:00
Arvid Norberg 8dd244581d header optimizations 2009-11-26 05:45:43 +00:00
Arvid Norberg 15c4842cea another header optimization 2009-11-23 17:05:26 +00:00
Arvid Norberg 6343fe6a6d optimized header dependencies to lower build time 2009-11-23 08:38:50 +00:00
Arvid Norberg 4b52b57bf0 fixed some compiler warnings 2009-11-11 05:22:57 +00:00
Arvid Norberg 51ef057498 more unicode and wstring fixes 2009-10-29 18:12:43 +00:00
Arvid Norberg dcd8bb6718 move stats instrumentation to .cpp file to fix header dependency issue 2009-10-28 19:56:18 +00:00
Arvid Norberg c418165e07 replaced boost.filesystem with custom functions (improves efficiency and drops unnecessary dependencies and improves libtorrent portability) 2009-10-26 01:29:39 +00:00
Arvid Norberg 9d1989904b some compatibility fixes. 2009-10-20 16:44:11 +00:00
Arvid Norberg 8a5b7d5d36 got rid of the last recursive mutexes. abstracted the threading primitives (and switched over to use asio's internal ones). 2009-10-20 02:49:56 +00:00
cristiangreco 70b0edb9f4 fix to not install the local copy of GeoIP.h when linking against system
libgeoip.
2009-10-12 20:56:17 +00:00
Arvid Norberg e289b9c6ac build fixes 2009-09-20 15:21:31 +00:00
Arvid Norberg 0f62beebb3 improved compile time by moving rate limiter implementation to a cpp file and making it a non-template 2009-09-16 04:41:35 +00:00
Arvid Norberg 6c67da08d6 split socket.hpp up in multiple headers to lower build time somewhat 2009-09-16 03:46:36 +00:00