Commit Graph

1065 Commits

Author SHA1 Message Date
arvidn 08bac479be allow each peer have at least 2 allocated disk blocks at any given time, to avoid stalling when cache_size setting is small. also deprecate use_write_cache 2016-03-16 00:28:11 -04:00
arvidn 58e73c1469 fix typo 2016-03-13 20:47:50 -04:00
arvidn 8f14c74be8 fix issue where a seed could time-out an unchoked peer for not sending any requests, despite being busy servicing requests from the peer (and time out immediately when m_requests is drained) 2016-03-13 16:41:31 -04:00
arvidn 2178d1ad2b improve robustness and performance of uTP PMTU discovery. fix duplicate ACK issue in uTP. demote an invariant check to 'expensive' 2016-03-13 12:40:59 -04:00
arvidn b9ec183e24 increase default connect speed. minor cleanup. add logging for short lived connections 2016-03-03 01:20:15 -05:00
arvidn 88b7e3768f add sim test for optimistic unchoke round-robin distribution 2016-02-01 20:28:30 -05:00
arvidn efe32c6a0e rewrite most of web_peer_connection::on_receive to make it a lot simpler and fix edge cases with pad-files 2016-01-28 01:58:33 -05:00
arvidn 1f9f588e75 merge copyright year update and changelog from RC_1_0 2016-01-17 18:57:46 -05:00
arvidn 645b121df6 deprecate resolve-countries 2015-12-14 21:32:30 -05:00
arvidn d505f93d7a port sim tests to use the new setup_swarm API 2015-12-12 00:41:47 -05:00
arvidn cc3b064cff fix graceful pause issue. peers regularly check whether they should disconnect or not 2015-12-04 23:27:43 -05:00
arvidn e9c0fc8eb5 fix bug that disabled rarest-first piece picking. introduced when removing speed-affinity in the piece picker 2015-11-29 08:26:00 -05:00
arvidn fd3b53604c add new piece picker logging alert category 2015-11-29 08:25:55 -05:00
arvidn a8e31fd8ca add first coverage of test_transfer as a proper sim 2015-11-28 00:59:39 -05:00
arvidn a138b2daa9 handle receiving an invalid request 2015-11-07 14:58:08 -05:00
arvidn 5da511f140 now that force-started torrents aren't affected by the auto-manager, they need to be explicitly kicked when entering checking state (it would be nice if all this could be done through set_state()) 2015-09-29 20:49:38 -04:00
arvidn c0a4f7ba26 fix super seeding assert (forward port from RC_1_0) 2015-09-08 18:17:13 -04:00
arvidn 17c5759829 disable warning for unused command line argument and fix warnings. remove redundant travis build config. use new preprocessor on clang to avoid warnings 2015-09-06 22:55:41 -04:00
arvidn beb5455331 add disk I/O read asserts and fix i2p issue if a tracker responds with i2p peers when i2p is not configured on the client 2015-08-28 07:20:21 -04:00
arvidn 6012306557 add more asserts for the size of the bitfields peers send 2015-08-27 21:48:52 -04:00
arvidn a42f9e0c63 fix more warnings 2015-08-22 00:28:12 +02:00
arvidn 4873004df7 warnings as errors 2015-08-21 14:52:07 +02:00
arvidn ffa870d280 fixed some GCC warnings 2015-08-20 01:33:20 +02:00
arvidn 5c8fc818c1 fix more warnings 2015-08-19 01:39:01 +02:00
arvidn f6b86dc4b5 add typesafety to piece_picker torrent_peer pointers. and fix a few incorrect uses 2015-08-18 04:25:13 -04:00
arvidn 9a0092c120 fix some warnings 2015-08-16 12:17:23 -04:00
arvidn a81ca2391b fix some warnings 2015-08-10 20:03:24 -04:00
arvidn 1c1698459c fix warnings 2015-08-08 22:53:11 -04:00
Alden Torres 1356332496 Avoid a possible null pointer error when logging on peer_connection::on_connection_complete. 2015-08-07 00:30:28 -04:00
arvidn 655a3ae019 fix some warnings 2015-08-01 23:57:11 -04:00
arvidn 29c618c3e5 merge bittorrent-slow start fix from RC_1_0 2015-07-27 16:53:25 -07:00
arvidn 6c5aec3476 fix request queue size performance issue 2015-07-20 08:20:17 -07:00
arvidn 6c7c0cd878 fix up some old logging defines and improve the log output for send buffer watermark and request queue length 2015-07-17 23:54:25 -04:00
arvidn 2739def57f minor cleanups. use libtorrent typedefs for asio. failing to bind IPv6 UDP socket is no longer fatal. removed some redundant listen_failed_alerts 2015-07-11 23:01:27 -04:00
arvidn 2b05b1c85c fix cppcheck warnings 2015-07-11 10:36:13 -04:00
arvidn a63cfd2a95 improve logging (specifically don't emit bandwidth limiter logs when it's disabled) 2015-07-05 18:44:02 -04:00
Mikhail Titov 77ca1ac16f Quadruple handshake timeout for i2p 2015-06-24 19:40:17 -05:00
arvidn 323af56cc2 update interest when changing upload-only mode 2015-06-16 01:24:35 -04:00
arvidn 41533205be drop support for boost 1.35 and fix some more references to the asio namespace 2015-06-06 02:10:53 -04:00
Arvid Norberg d43f7b56a2 update copyright year 2015-06-03 05:18:48 +00:00
Arvid Norberg 607e708bc4 fix warnings 2015-05-19 03:13:49 +00:00
Arvid Norberg 58ae099cf8 clean up disk_io_job a bit to avoid old-style casts 2015-05-16 20:41:37 +00:00
Arvid Norberg 12c9d3de26 fix more warnings 2015-05-16 18:35:47 +00:00
Arvid Norberg 2bf4519bee make the torrent hold a pointer to the ip_filter instead of relying on a session reference 2015-05-16 06:33:37 +00:00
Arvid Norberg e7f9f35556 fix mistake in download_queue_time 2015-05-13 00:02:01 +00:00
Arvid Norberg 1357fd5265 clean up usage of printf attribute (encapsulate it in a macro) 2015-05-10 05:11:51 +00:00
Arvid Norberg a83dcbaaf0 removed access-log build option and log parser. added incoming_request_alert. This feature can now be implemented by clients 2015-05-09 03:04:08 +00:00
Arvid Norberg 4a304273fd fix some coverity issues 2015-05-03 03:28:39 +00:00
Arvid Norberg 4f216dece3 factor out strings of peer logs to be enums instead, in peer_log_alert 2015-05-03 02:53:54 +00:00
Arvid Norberg 42120014d0 merged changes from RC_1_0 2015-04-28 04:01:40 +00:00
Arvid Norberg a0e6b52a3f fix msvc build issues 2015-04-26 01:45:23 +00:00
Arvid Norberg 821e34c795 fix examples build. fix print formatting bugs. fix some gcc warnings 2015-04-25 04:22:51 +00:00
Arvid Norberg 91e66f65d3 removed unused argument (and silence warning) 2015-04-23 06:12:53 +00:00
Arvid Norberg 0b063de9ff fix more warnings 2015-04-21 04:30:34 +00:00
Arvid Norberg 3951377d95 fix include paths for warning push and pop headers 2015-04-21 01:16:28 +00:00
Arvid Norberg f5629eb403 cleanup and fixing of more warnings 2015-04-21 00:23:00 +00:00
Arvid Norberg 4d15f1410f fix warnings, some clean-up and todo comments 2015-04-20 04:52:49 +00:00
Arvid Norberg 4fd230dbe5 fix build and some warnings 2015-04-20 00:01:27 +00:00
Arvid Norberg 408232cfc8 raise warning level. fix a few of them. filter out warnings from boost 2015-04-18 02:33:39 +00:00
Arvid Norberg 1faf2e201f inversed TORRENT_LOGGING build config to enable logging by default. It's now disabled by TORRENT_DISABLE_LOGGING 2015-04-17 01:15:33 +00:00
Arvid Norberg 5f0b941a54 add more information to the invalid_request_alert and be more forgiving about requests from peers that have not sent an interested-message first 2015-04-13 01:34:19 +00:00
Arvid Norberg bb48b6e83c eliminate one more session dependency in peer_connection 2015-04-10 01:50:42 +00:00
Arvid Norberg 013ed36f09 landed alert_queue feature branch into trunk 2015-04-03 20:15:48 +00:00
Arvid Norberg 794de25212 moved escape_string.hpp into the aux_ directory. moved out the 3 public hex functions into its own public header, hex.hpp 2015-03-14 23:10:20 +00:00
Arvid Norberg c1dc982f4f deprecate the ptime type and related time types. just use boost::chrono / std::chrono 2015-03-12 04:34:54 +00:00
Arvid Norberg 0c8aee014c implemented utp extension header to indicate the reason to close the connection 2015-02-28 19:51:15 +00:00
Arvid Norberg 91270a0c2b make operation_t public and document it. include peer disconnects in client_test log 2015-02-15 05:17:09 +00:00
Arvid Norberg a831a78fd5 simplify and clean up utp_stream. fix missing error check in read handler in peer_connection 2015-02-15 00:25:56 +00:00
Arvid Norberg 2fdb7499fa optimize block_info allocation and downloading_piece size in piece_picker 2015-02-14 21:32:41 +00:00
Arvid Norberg 51f1a61d2d more piece_picker unit tests and some fixes 2015-02-13 02:58:21 +00:00
Arvid Norberg 9fb98b1151 remove speed affinity feature in piece-picker and peers 2015-02-08 21:17:00 +00:00
Arvid Norberg 1b9b6f7292 support http basic auth in http_connection passed in from the outside as opposed to part of the url 2015-02-08 16:03:09 +00:00
Arvid Norberg 097d5b484d improve piece picker support for reverse picking (used for snubbed peers) to not cause priority inversion for regular peers 2015-01-26 02:04:58 +00:00
Arvid Norberg d8d069675c improve piece picker to better support torrents with very large pieces and web seeds 2015-01-20 02:34:55 +00:00
Arvid Norberg 7668bf5d4c downgrade some todo comments 2015-01-15 19:13:45 +00:00
Arvid Norberg 95f889b247 some debug output 2015-01-13 06:11:42 +00:00
Arvid Norberg 1a53a454ec fix ssl unit test 2015-01-06 08:16:03 +00:00
Arvid Norberg 0977d94dbc merged changes from RC_1_0 2014-12-25 11:24:02 +00:00
Arvid Norberg 333a13c957 a bit more conservative block request timeouts. promote some invariant checks in the DHT as expensive (to disable them for regular debug builds) 2014-12-10 07:13:57 +00:00
Arvid Norberg 20b9a01a09 pack members of pending_buffer a bit 2014-12-10 01:05:40 +00:00
Arvid Norberg 5666cdcd07 fix warnings 2014-12-09 09:33:34 +00:00
Arvid Norberg 09bc1550e9 simplify the debug logging mechanism. There's now only one build option, logging=on or logging=off. When logging is enabled, the log level is controlled by the alert mask. All log events are delivered as alerts and it's up to the client to write them to disk in whatever way seems appropriate. removed the pointless logger plugin 2014-12-09 09:08:26 +00:00
Arvid Norberg 4eaec6d87f instead of using a fixed request timeout for every peer, have an adaptable one based on the average download time for a block 2014-12-08 17:06:04 +00:00
Arvid Norberg c4e5df8e4d remove the concept of timeout_extend in piece request timeouts. if a request times out, cancel it as soon as it holds up the completion of a piece 2014-12-07 22:22:38 +00:00
Arvid Norberg 790ef041bf merged changes from RC_1_0 2014-12-07 07:22:39 +00:00
Arvid Norberg 1ed1963f29 remove size_type typedef in favor of boost::int64_t 2014-12-03 04:32:50 +00:00
Arvid Norberg 658e2ceefd merged Steven Siloti's peer crypto patch into trunk 2014-11-23 06:14:47 +00:00
Arvid Norberg e1d0592a57 merged changes from RC_1_0 2014-11-14 09:35:39 +00:00
Arvid Norberg e526355d24 merged changes from RC_1_0 2014-11-09 11:17:13 +00:00
Arvid Norberg aae56c991c merged changes from RC_1_0 2014-11-08 16:58:18 +00:00
Arvid Norberg 601f0dc434 merged changes from RC_1_0 2014-11-03 06:15:51 +00:00
Arvid Norberg 85cc72835e finally rename policy to peer_list 2014-10-26 07:34:31 +00:00
Arvid Norberg 1c448331d5 fix stats_alert with recent changes to stats 2014-10-25 23:10:07 +00:00
Arvid Norberg e09a2b770d factored out choke comparison functions into choker.cpp 2014-10-22 22:30:04 +00:00
Arvid Norberg 32d368e1ce merged changes from RC_1_0 2014-10-12 18:16:46 +00:00
Arvid Norberg ec472daee3 fix bug in peer_connection causing it to not connect when not having metadata 2014-10-12 06:29:34 +00:00
Arvid Norberg ab34239447 fix invalid comment 2014-10-10 00:16:17 +00:00
Arvid Norberg a655047cb0 support SSL over uTP (unit test is still failing with same errors as previously, this has not been fixed yet) 2014-10-06 03:03:01 +00:00
Arvid Norberg 3c7a932aee update comments 2014-10-04 20:06:46 +00:00
Arvid Norberg ceccc2a483 land branch to remove half-open connection limit / connection queue 2014-10-03 20:56:57 +00:00
Arvid Norberg 6a4a5419c2 one more fix 2014-09-28 04:05:44 +00:00
Arvid Norberg 9a985d197f optimize num_seeds() and num_downloaders() to not count the peers every time 2014-09-24 09:03:57 +00:00
Arvid Norberg 60119bf0ca added auto-sequential feature 2014-09-24 00:02:00 +00:00
Arvid Norberg 7a55069ec9 add additional single-thread asserts and separate torrents from the session (in preparation for running them in separate threads/strands) 2014-09-22 17:41:06 +00:00
Arvid Norberg d7d498c3a3 more steps towards isolating peer_connections from the session object. unchoking now happens via the torrent object. hopefully in the future, the session can determine which peers to unchoke without having direct access to them (i.e. with a mutex) 2014-09-22 03:47:43 +00:00
Arvid Norberg 27b7705cf2 remove built-in GeoIP support 2014-09-21 21:01:48 +00:00
Arvid Norberg 2936556573 fix bug in delay-load feature of torrents 2014-09-21 02:06:03 +00:00
Arvid Norberg c7a0bde196 fix bug in peer_connection::second_tick 2014-09-20 23:57:59 +00:00
Arvid Norberg ad7d74f255 merged fixes from RC_1_0 2014-09-13 19:47:51 +00:00
Arvid Norberg b74f5b13ef fix another boost.chrono time overflow issue 2014-09-02 07:31:41 +00:00
Arvid Norberg 2f3e3caf0f fixed typo 2014-08-31 08:34:03 +00:00
Arvid Norberg 97a8e3b895 fix build error with verbose logging 2014-08-28 07:02:43 +00:00
Arvid Norberg 4ddedc6a21 add extension hook on sending payload 2014-08-26 04:26:16 +00:00
Arvid Norberg 7d751b80da merged fixes from RC_1_0 2014-08-26 03:14:32 +00:00
Arvid Norberg 862844e546 merged changes from RC_1_0 2014-08-22 07:56:10 +00:00
Arvid Norberg 40559fa564 fix typo in peer_connection 2014-08-11 15:53:53 +00:00
Arvid Norberg 0bc2d1eb8a cover edge case of receiving the response to a request before the callback of sending the request. fixes assert 2014-08-02 06:09:07 +00:00
Arvid Norberg 02f3e48eaa make performance counters able to blend in values, reducing a peer_connection -> session dependency on a sliding average state (this can be used for disk stats too) 2014-07-29 16:35:03 +00:00
Arvid Norberg ab8c1eb334 log latency of bittorrent requests 2014-07-28 22:18:06 +00:00
Arvid Norberg 2f6a68bad3 track RTT of piece requests 2014-07-28 07:52:59 +00:00
Arvid Norberg 118ba5e9c4 streaming fix 2014-07-26 17:48:24 +00:00
Arvid Norberg 499edabf9f a bit more cleaning up of m_ses uses in peer_connection 2014-07-19 22:33:45 +00:00
Arvid Norberg 30713a4a79 remove buffer stats debugging feature 2014-07-19 08:20:20 +00:00
Arvid Norberg 65bb1d0006 pass all the arguments to peer connections as an argument pack 2014-07-14 04:32:41 +00:00
Arvid Norberg 01640e1682 separate stats counters from session_interface (this was the main use of m_ses in peer connections) 2014-07-13 04:56:53 +00:00
Arvid Norberg ca27c0d5ca fix another boost.chrono issue 2014-07-13 00:48:32 +00:00
Arvid Norberg bf18e310e6 remove some peer connection dependencies on m_ses 2014-07-12 22:32:55 +00:00
Arvid Norberg a6f345181f fixed some unused argument warnings 2014-07-07 06:28:48 +00:00
Arvid Norberg 7351389ce8 land libtorrent_aio branch in trunk 2014-07-06 19:18:00 +00:00
Arvid Norberg 6c6fe4dfe2 merged fixes of warnings from RC_1_0 2014-07-04 23:40:31 +00:00
Arvid Norberg 6e275fbe21 removed left-over unused variables 2014-07-02 02:53:10 +00:00
Arvid Norberg 6043e14131 remove pch.hpp 2014-06-28 23:45:46 +00:00
Arvid Norberg 3f4eba1bdb web seed and storage fixes 2014-06-21 06:58:39 +00:00
Arvid Norberg 5642a0bd59 fix outstanding bytes issue when receiving redundant bytes 2014-06-17 08:07:03 +00:00
Arvid Norberg 2b7bef0f7b fix support for web servers not supporting keepalive 2014-06-15 18:02:59 +00:00
Arvid Norberg 6d95b48afa only attempt to set the TOS on socket when configured 2014-06-15 17:44:27 +00:00
Arvid Norberg e291ab3290 minor streaming improvements 2014-06-08 21:15:34 +00:00
Arvid Norberg 2125efbbd8 merged streaming changes from libtorrent_aio into trunk 2014-06-06 01:26:18 +00:00
Arvid Norberg e225259481 fix some msvc warnings 2014-05-10 03:23:05 +00:00
Arvid Norberg 474e77039f removed set_ratio feature 2014-05-03 17:11:55 +00:00
Arvid Norberg 3192e59a1a improve piece_deadline/streaming 2014-04-22 04:21:14 +00:00
Arvid Norberg 0b3df1c973 merged integer overflow fix from RC_0_16 2014-04-16 08:25:14 +00:00
Arvid Norberg 1734beda07 add missing includes for debug logging builds 2014-03-28 01:55:09 +00:00
Arvid Norberg 5b292133cb fix assert by only constructing piece_block with verified values 2014-03-16 07:30:44 +00:00
Arvid Norberg 1c954451ff seed mode fixes 2014-03-13 08:00:53 +00:00
Arvid Norberg a943fec777 update copyright 2014-02-23 19:12:25 +00:00
Arvid Norberg 9612ef193e cleaned up i2p_category to encapsulate it in i2p_stream.cpp, as well as the socks5 erro_category. added some documentation to torrent_handle and session. fixed reference documentation mapping of get_*_category() functions. regenerate documentation 2014-02-02 04:07:36 +00:00
Arvid Norberg f0d1e8636c extend verbose logging to try to catch test_priority failure on windows 2014-01-26 04:45:49 +00:00
Arvid Norberg 2a3f4e2360 merged verbose logging change from RC_0_16 2014-01-24 07:07:04 +00:00
Arvid Norberg 8ab1d8b686 more build fixes and cleaning up 2014-01-19 20:19:15 +00:00