Commit Graph

877 Commits

Author SHA1 Message Date
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 3d6145f713 resolve duplicate torrents by URL as well (by linear scan) 2013-09-15 12:29:09 +00:00
Arvid Norberg b81dbc4669 fix stats logging 2013-09-15 05:14:03 +00:00
Arvid Norberg a386d8aca0 merged build fix without exceptions from RC_0_16 2013-09-14 10:26:55 +00:00
Arvid Norberg 1aa47fc13e add more utp statistics and make the congestion controller less aggressive when the up-link is not saturated 2013-09-14 10:06:48 +00:00
Arvid Norberg 515cd24a8c if setting socket send or receive buffer size fails, reset it to the previous value 2013-09-03 08:39:30 +00:00
Arvid Norberg 275c340231 make socket buffer sizes affect the udp socket as well. for high_performance_seed preset, set 1 MB socket buffers. only run test_rate() in proper release mode (without invariant checks and debug-iterators). lower the time limit of test_rate. update regression tests to disable invariant checks and debug iterators when building release mode 2013-09-02 09:24:34 +00:00
Arvid Norberg 3afe6c23a0 merged tracker key patch from RC_0_16 2013-08-31 21:06:43 +00:00
Arvid Norberg b6083fbc28 first steps towards supporting SSL over uTP. moved the TODO comment and made it describe the next step. Optimized session destruction in unit tests, hopefully shaving off a bit of test run-time (and now supports asio-debugging of unit tests) 2013-08-31 20:19:03 +00:00
Arvid Norberg 8a0b4d02da merged fix from RC_0_16 2013-08-26 05:50:26 +00:00
Arvid Norberg 0f57615ea3 attempt at fixing shut-down hang 2013-08-21 15:55:24 +00:00
Arvid Norberg d5c715bf96 added missing asio-debugging mark-up 2013-08-21 15:41:19 +00:00
Arvid Norberg 023116db6f merge ssl test fix from RC_0_16 2013-08-17 22:29:34 +00:00
Arvid Norberg 1b60710493 support extensions removing torrents in tick() 2013-08-15 06:10:41 +00:00
Arvid Norberg d782fc224c merged SSL fix from RC_0_16 2013-08-05 16:20:25 +00:00
Arvid Norberg 9319c1e073 make it possible to add torrent plugins via add_torrent_params 2013-08-02 09:42:51 +00:00
Arvid Norberg e7db8d37a2 merge deprecation of wstring overloads from RC_0_16 2013-08-02 05:03:22 +00:00
Arvid Norberg c0a0769aea merged fix from RC_0_16 2013-08-02 01:25:52 +00:00
Arvid Norberg beae6cece0 merged ssl fix from RC_0_16 2013-07-28 15:06:28 +00:00
Arvid Norberg 3c7503beaa remove unused member of alert_manager 2013-07-19 23:31:44 +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 9c9135bfc4 don't use pointers to resume_data and file_priorities in add_torrent_params 2013-07-17 20:21:48 +00:00
Arvid Norberg 8e43a80fe9 one more getpid() fix for windows 2013-06-18 08:48:19 +00:00
Arvid Norberg dcfd69fbe3 fix request-logging build on windows 2013-06-18 03:18:47 +00:00
Arvid Norberg a75a0581e3 improve error message for listen_failed_alert 2013-06-04 00:35:42 +00:00
Arvid Norberg 93993002ab merged unchoke algorithm fix from RC_0_16 2013-06-01 22:33:11 +00:00
Arvid Norberg df4fcaaeed remove disable-dht build configuration from the public API (simplify linking) 2013-04-09 01:04:43 +00:00
Arvid Norberg 01f60fa20c fix disk setting sync. 2013-03-21 01:45:12 +00:00
Arvid Norberg 59a95c8ed6 fix build 2013-03-17 22:16:57 +00:00
Arvid Norberg 8d8d160b35 a bit more robust error messaging when deleting files in a torrent 2013-03-17 00:50:33 +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 5cf8aa57f4 anonymous mode should default to false. minor fixes 2013-02-19 08:14:16 +00:00
Arvid Norberg 86a2569728 separate anonymous mode and force-proxy mode, and tighten it up a bit 2013-02-19 06:48:53 +00:00
Arvid Norberg 907eca9ac3 merged documentation fix from RC_0_16 2013-02-17 22:56:39 +00:00
Arvid Norberg 0951219ab6 simplify the accounting of active_download and active_finished torrents 2013-02-09 05:56:31 +00:00
Arvid Norberg 0e6e943318 comment and invariant check 2013-02-07 06:41:11 +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 652bf8323b prioritize some more todo mark-ups 2013-01-21 01:40:59 +00:00
Arvid Norberg f1b8582a95 add gen_todo.py script. include todo.html and mark up some todos in the code with priority 2013-01-20 23:21:53 +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 5afa8c88b9 fix issues introduced with connection ordering 2013-01-02 07:48:09 +00:00
Arvid Norberg 970ddba29b refactor find_disconnect_candidate_torrent to match libtorrent_aio 2013-01-02 07:39:02 +00:00
Arvid Norberg c37420f82d fixed some typos 2013-01-01 23:43:52 +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 d7bef3dbf9 merged fix from RC_0_16 2012-12-31 03:12:11 +00:00
Arvid Norberg 40805503d6 merged python binding fix from RC_0_16 2012-12-14 04:38:44 +00:00
Arvid Norberg d2f72f50cc merged IPV6_V6ONLY fix from RC_0_16 2012-11-19 04:58:46 +00:00
Arvid Norberg 52b205e6cb merged fix from RC_0_16 2012-11-11 05:07:19 +00:00
Arvid Norberg 85cda6cf53 fixed logging build 2012-11-09 17:11:42 +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 8ba970018c make bottled http requests response size limit configurable and bump default to 2 MiB 2012-10-19 01:28:47 +00:00
Arvid Norberg 01f70bfd84 add session logging function 2012-10-18 15:14:18 +00:00
Arvid Norberg 158f59cb22 merged fix from RC_0_16 2012-10-18 07:42:15 +00:00
Arvid Norberg ed4dfbc8fb use session_log function rather than iostream for session logging 2012-10-18 07:32:16 +00:00
Arvid Norberg e4f15a2223 merged uTP fix from RC_0_16 2012-10-15 06:20:42 +00:00
Arvid Norberg b3ad105145 merged ssl fix from RC_0_16 2012-10-10 05:52:08 +00:00
Arvid Norberg 971aea19e7 merged local service discovery logging from RC_0_16 2012-10-09 04:16:37 +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 e44225cb57 merged uTP fix from RC_0_16 2012-10-05 03:20:40 +00:00
Arvid Norberg bff648a89e update copyright dates and add tool to do so 2012-10-02 03:16:33 +00:00
Arvid Norberg 37ec1af926 add TODO comment 2012-09-30 15:38:37 +00:00
Arvid Norberg 4ea4d32554 merge active_tracker_limit increase and logging polish from RC_0_16 2012-09-27 23:50:15 +00:00
Arvid Norberg 19e4cbec46 merged udp socket fix 2012-09-27 17:39:41 +00:00
Arvid Norberg 0a90844407 merged logging improvement from RC_0_16 2012-09-25 02:49:40 +00:00
Arvid Norberg d098e49059 merged DHT feature from libtorrent_aio 2012-09-22 21:40:16 +00:00
Arvid Norberg 33233963eb merged fix from RC_0_16 2012-08-29 01:58:06 +00:00
Arvid Norberg 0685fb91bd DHT throttling fix 2012-08-03 05:13:40 +00:00
Arvid Norberg ee3b006c85 fix build with i2p disabled 2012-07-31 16:53:37 +00:00
Arvid Norberg 0657690b1c attempt at fixing shutdown hang caused by connection_queue 2012-07-15 23:22:23 +00:00
Arvid Norberg db33922684 merged shutdown delay fix from libtorrent_aio 2012-07-15 02:30:13 +00:00
Arvid Norberg 7c7b927e07 improve connection distribution fairness between torrents 2012-07-04 20:41:22 +00:00
Arvid Norberg 4860805c81 fix logging build 2012-06-30 15:05:31 +00:00
Arvid Norberg 4a2c799a1a always use SO_REUSEADDR and deprecate the flag to turn it on 2012-06-28 06:51:18 +00:00
Arvid Norberg a4091ff1a1 add comment 2012-06-26 03:34:42 +00:00
Arvid Norberg 4ddbe44a0d fix bug in the udp socket observer use for DHT and add debug facilily for the observers 2012-06-25 03:31:11 +00:00
Arvid Norberg b728037ec3 deprecate delayed_ack setting 2012-06-23 06:04:46 +00:00
Arvid Norberg 7351f68b98 fix build with verbose logging and missing INT64_MAX on msvc 2012-06-23 05:46:51 +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 918dce1341 back-ported part of the alert_dispatcher patch for the DHT 2012-04-30 05:39:35 +00:00
Arvid Norberg ccb1a880aa fixed unchoke logic when using web seeds 2012-04-12 00:02:35 +00:00
Arvid Norberg f714732eee merged fix from RC_0_16 to support older openssl 2012-04-06 04:11:04 +00:00
Arvid Norberg 9024209d51 merged set_settings race condition fix into trunk 2012-04-06 03:02:50 +00:00
Arvid Norberg 46683f59f8 fix division by zero 2012-04-02 05:30:15 +00:00
Arvid Norberg b29b2314b2 improved shutdown delay debugging 2012-04-01 00:42:31 +00:00
Arvid Norberg 418c1e8190 make tracker back-off configurable 2012-03-29 03:51:22 +00:00
Arvid Norberg 6fcc469aef support banning web seeds that send corrupt data 2012-03-24 01:29:31 +00:00
Arvid Norberg 8a4685e83b fixed some typos 2012-03-17 17:48:22 +00:00
Arvid Norberg d8b221c795 improve session stats logging and parsing 2012-03-11 05:35:29 +00:00
Arvid Norberg 671694959f log peers that have a full send buffer 2012-03-09 17:03:10 +00:00
Arvid Norberg b58a96d76b log stats of incoming piece requests 2012-03-09 06:24:01 +00:00
Arvid Norberg 9288f08826 fix stats logging precision 2012-03-09 01:22:45 +00:00
Arvid Norberg 341967dab7 improve magnet link support. in RSS feeds for instance. Parsing of magnet links was factored out and moved to the proper place, in session_impl::add_torrent 2012-03-08 09:54:44 +00:00
Arvid Norberg 9bd40e950b add send_buffer_low_watermark in an attempt to improve seed ramp-up time 2012-03-07 02:59:50 +00:00
Arvid Norberg 02b0e0ead3 add some more stats logging 2012-03-06 10:34:18 +00:00
Arvid Norberg 5897235f51 fix recent simplification of connection attempt distribution 2012-03-06 07:34:02 +00:00
Arvid Norberg ea59a9be22 simplify connection attempt distribution logic to not lower the connection rate with a downloading torrent among seeding ones 2012-03-05 10:42:25 +00:00
Arvid Norberg 8f3c3de1e2 add incoming requests to stats logging 2012-03-05 10:05:20 +00:00
Arvid Norberg e2d46b5563 add performance warning when hitting the file descriptor limit. Log the total number of peers, including half-open TCP connections 2012-03-04 11:18:27 +00:00
Arvid Norberg 769c985e78 report ENOFILE to peer connection disconnect function when running out of file descriptors 2012-03-04 10:54:55 +00:00
Arvid Norberg ccf9c5a0fd log more stats 2012-03-02 08:52:54 +00:00
Arvid Norberg fdc6d3722b fix boost version condition for new asio ssl features 2012-02-26 00:01:53 +00:00
Arvid Norberg 886364118c tweak connection points in deficit round-robin of outgoing connection attempts balancing between torrents 2012-02-25 10:57:36 +00:00
Arvid Norberg b5bf19c07b fix openssl build with boost-1.46 2012-02-25 08:31:25 +00:00
Arvid Norberg 3ef9190b01 fix export for settings_map symbol for python binding 2012-02-25 08:02:52 +00:00
Arvid Norberg f221b3d931 export session_settings_map and fix rss issue in client_test 2012-02-24 16:11:31 +00:00
Arvid Norberg 28e74a79b7 RSS fixes (exponential back-off), handling feed errors with retries 2012-02-22 08:26:42 +00:00
Arvid Norberg d24a2e30fc rss feed fixes 2012-02-20 23:44:34 +00:00
Arvid Norberg 75fce84ce4 added unit test for RSS feeds and fixed a parsing bug 2012-02-20 07:51:36 +00:00
Arvid Norberg 079a8f8314 ignore failures when asking for local address of sockets and parsing a string into an IP address 2012-02-20 04:13:39 +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 639039a94e attempt to fix TOS setting (IP type of service) 2012-01-29 20:59:20 +00:00
Arvid Norberg 1a32205944 graceful shutdown of uTP sockets 2012-01-23 05:02:12 +00:00
Arvid Norberg ed56520d24 more asserts around state updates 2012-01-20 05:40:32 +00:00
Arvid Norberg 88012b6a1c log uTP states to stats log 2012-01-17 03:11:16 +00:00
Arvid Norberg ae90a8f85e verify that torrent names matches the DNS name in its certificate (RFC 2818-style). Fix issues that was breaking SSL support and tidy up a bit 2012-01-15 23:34:43 +00:00
Arvid Norberg 4a40e68a82 landed ssl branch back into trunk 2012-01-14 16:04:25 +00:00
Arvid Norberg 23c477142e merged integer overflow fix from aio branch 2012-01-05 21:11:55 +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 91b5fde1e2 don't recalculate auto managed files when session is paused 2011-12-24 20:15:22 +00:00
Arvid Norberg c2b8e869f1 one more recalculate_auto_manage postponing fix 2011-12-23 20:02:59 +00:00
Arvid Norberg 231fc30e13 postpone recalculate auto-managed torrents when changing many torrents state 2011-12-23 17:16:14 +00:00
Arvid Norberg 2877903e75 replaced std::map with boost::unordered_map for torrent list, to scale better with many torrents 2011-12-21 21:21:19 +00:00
Arvid Norberg 7f3aac3959 fix issue with unchoke_slots_limit not preserving its value correctly 2011-12-19 05:53:11 +00:00
Arvid Norberg ef724014aa deprecated per-peer rate limits (and removed them from libtorrent_aio) 2011-12-18 12:52:09 +00:00
Arvid Norberg 47e81ff90b fixed uninitialized counter for stats logging 2011-11-28 01:27:55 +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 9250b551d9 fix stats build 2011-11-21 06:21:06 +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 c4232065d8 introduced a more scalable API for torrent status updates (post_torrent_updates()) 2011-11-15 02:34:00 +00:00
Arvid Norberg 5576a98d04 log session_stats to /var/log/ on unixes 2011-11-13 08:12:11 +00:00
Arvid Norberg 2330520c51 change the add_torrent_params API to use flags instead of a bunch of bools (but leave it backwards compatible) 2011-11-08 05:36:22 +00:00
Arvid Norberg b85727c633 another channel state fix 2011-10-28 23:08:52 +00:00
Arvid Norberg 0a2b352795 possible dangling pointer fix in broadcast_socket 2011-10-25 05:55:32 +00:00
Arvid Norberg 15f20c887d fix msvc build 2011-10-22 17:44:40 +00:00
Arvid Norberg 95e462e750 windows version of CPU time measurement 2011-10-18 00:42:05 +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 744a3be65d also use separate lower limits for up and download rates in the TCP/uTP mixed mode algorithm 2011-10-11 05:05:09 +00:00
Arvid Norberg 8aed4eaa7f improve TCP/uTP mixed mode algorithm by only taking peers into account that have outstanding requests (and want to send or expect to receive). Also throttle upload and download independently 2011-10-11 05:00:35 +00:00
Arvid Norberg 2741563711 set alert_mask early 2011-10-08 09:52:36 +00:00