Commit Graph

5008 Commits

Author SHA1 Message Date
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 8200f33925 fix gcc build issue in test_peer_list 2015-04-13 00:50:55 +00:00
Arvid Norberg 208fbe8545 extend test_peer_list 2015-04-12 06:39:16 +00:00
Arvid Norberg baaeac7809 extend some unit tests. primarily test_alert_manager and fixed a bug in alert_manager 2015-04-11 18:44:43 +00:00
Arvid Norberg 0cedddbba0 fix build with no deprecated functions 2015-04-11 15:31:36 +00:00
Arvid Norberg b3e061ca94 clean up of some test and fix warnings 2015-04-11 15:25:24 +00:00
Arvid Norberg fb40cb484e merged changes from RC_1_0 2015-04-11 14:17:33 +00:00
Arvid Norberg af57bdfe6a clean up use of error categories in file.cpp 2015-04-10 23:19:47 +00:00
Arvid Norberg 10cbe7f969 log fewer false positive udp tracker errors (when we can't find the transaction ID) 2015-04-10 04:20:20 +00:00
Arvid Norberg c47699005f merge fixes from RC_1_0 2015-04-10 03:25:02 +00:00
Arvid Norberg bb48b6e83c eliminate one more session dependency in peer_connection 2015-04-10 01:50:42 +00:00
Arvid Norberg 06135941f3 be a bit more lenient with invalid metadata requests 2015-04-09 04:24:13 +00:00
Arvid Norberg 20aa53953c fix etensions being passed all alerts 2015-04-07 00:50:21 +00:00
Arvid Norberg 6d09050d08 fix build without deprecated functions 2015-04-06 00:06:26 +00:00
Arvid Norberg b07b208a4a rate limit how often recalculate_auto_managed can be called (it's expensive) 2015-04-05 19:35:58 +00:00
Arvid Norberg 2a3a34bf8d fix warnings in alert_manager and fix test_resolve_links for windows 2015-04-04 19:11:14 +00:00
Arvid Norberg 013ed36f09 landed alert_queue feature branch into trunk 2015-04-03 20:15:48 +00:00
Arvid Norberg f168849f51 clean up lsd logging 2015-03-29 23:25:25 +00:00
Arvid Norberg 837e709628 deprecate RSS API 2015-03-28 17:31:27 +00:00
Arvid Norberg a516bf46e5 merged changes from RC_1_0 2015-03-22 04:34:11 +00:00
Arvid Norberg 9af3066b56 fix file collision logic in torrent_info 2015-03-21 16:55:23 +00:00
Arvid Norberg 3f21a846f6 fix build without deprecated function. extend test_coverage script. comment out DHT sanity check assert that fires in the wild 2015-03-21 00:50:28 +00:00
Arvid Norberg ccc7e45406 landed mutable torrents branch in trunk 2015-03-21 00:12:40 +00:00
Arvid Norberg 1b07ec491d fix build issue out of recent changes of exported functions 2015-03-16 04:38:28 +00:00
Arvid Norberg 74ca290fe6 attempt to fix build 2015-03-15 06:05:41 +00:00
Arvid Norberg 6c67694d22 fix windows and linux build 2015-03-15 04:25:54 +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 fad1c42970 documetation fixes and polish 2015-03-14 21:55:26 +00:00
Arvid Norberg 37225b71ae const static -> static const (thanks gubatron). helps swigs parser 2015-03-14 00:42:27 +00:00
Arvid Norberg 65a9d76938 fix dht logging build 2015-03-13 05:53:22 +00:00
Arvid Norberg 881fa4dce6 remove sleep() from the libtorrent API 2015-03-13 05:52:48 +00:00
Arvid Norberg 6c1df7eb55 landed the bdecode branch in master. lazy_bdecode/lazy_entry is now being replaced by bdecode/bdecode_node 2015-03-12 05:20:12 +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 10333221bc attempt at fixing file permission issues on windows 2015-03-09 06:09:50 +00:00
Arvid Norberg 14e97b8151 build fix 2015-03-08 04:49:10 +00:00
Arvid Norberg f981221cff fixes to close-reason patch 2015-03-01 07:02:32 +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 c4b112f23a add comment 2015-02-24 04:15:47 +00:00
Arvid Norberg fd1d349457 valgrind build fix 2015-02-24 01:58:26 +00:00
Arvid Norberg f364fe7beb include tracker message in tracker_alert 2015-02-21 22:45:45 +00:00
Arvid Norberg 89055c4c7a some more optimizations on loading torrents 2015-02-18 03:32:49 +00:00
Arvid Norberg c4a294e88a deprecate file_base feature in file_storage/torrent_info 2015-02-17 04:53:49 +00:00
Arvid Norberg d49e97afb3 optimized loading and parsing torrents. Specifically detecting duplicate filenames (optimizing the common case of no collisions). Expanded unit test to uncover an unsupported case (not fixed yet). cutting down on memory allocation and copying when parsing torrent files in memory 2015-02-17 02:08:47 +00:00
Arvid Norberg 3d47a1fb81 extend file_storage unit test a bit 2015-02-16 21:53:23 +00:00
Arvid Norberg 5ea0db3145 extend piece_picker unit test and comment out unused function 2015-02-15 22:01:15 +00:00
Arvid Norberg cb6d3cdd44 extend piece_picker unit test. extend http_parser unit test and fix resolve_redirect_location 2015-02-15 20:01:30 +00:00
Arvid Norberg 40980df545 extend storage unit test to cover iovec operations 2015-02-15 07:31:35 +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 43021f5f22 remove todo comment 2015-02-14 23:31:44 +00:00
Arvid Norberg 1dbba7c410 optimize disk buffer allocation when seeding 2015-02-14 23:20:45 +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 01ee9cd9af more work on piece_picker unit test 2015-02-12 06:43:46 +00:00
Arvid Norberg 72d015c86a extend piece_picker unit test 2015-02-12 03:16:53 +00:00
Arvid Norberg 2d4949cfed test coverage script 2015-02-10 06:02:51 +00:00
Arvid Norberg 9ff3030c7d remove residual from peer speed affinity 2015-02-10 04:37:10 +00:00
Arvid Norberg 678385f358 share mode polish and remove old comment 2015-02-08 22:29:10 +00:00
Arvid Norberg 7395a91bf4 clean up piece picker interface to make piece_pos private again 2015-02-08 22:15:59 +00:00
Arvid Norberg 84fe616ccb extend piece picker unit test 2015-02-08 21:44:58 +00:00
Arvid Norberg 9fb98b1151 remove speed affinity feature in piece-picker and peers 2015-02-08 21:17:00 +00:00
Arvid Norberg 497f7a4a27 piece picker fix for random mode 2015-02-08 21:12:10 +00:00
Arvid Norberg a8623a9b23 request partial pieces in rarest-first order 2015-02-08 18:01:29 +00:00
Arvid Norberg 512113510b introduce another rule where we prioritize partial pieces in the piece picker to avoid having too many bytes outstanding in partial pieces (especially very large pieces) 2015-02-08 16:52:57 +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 04c33d6fb2 move closing of files outside of file pool mutex 2015-02-08 14:44:33 +00:00
Arvid Norberg 2a0789594d fix linux build 2015-02-08 00:59:54 +00:00
Arvid Norberg 46ef448711 fix issue with upload only while trying to download metadata. also added a unit test to catch it in the future 2015-02-07 01:01:48 +00:00
Arvid Norberg 9b91508c38 clean up session_interface and tracker_manager a bit. work on making tracker_manager more testable 2015-02-01 14:30:43 +00:00
Arvid Norberg fe10128d53 fix invalid memory access 2015-01-27 01:09:16 +00:00
Arvid Norberg 678d4f3a82 fix warning 2015-01-26 03:09:32 +00:00
Arvid Norberg d92d53f27a merged changes from RC_1_0 2015-01-26 02:07:03 +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 bc9281a27c deprecate file_entry (used by file_storage) and clean up the add_file overload that borrows memory (and improve implementation and documentation). The python bindings were updated to more closely match the c++ API (specifically actually using file_storage) 2015-01-21 15:46:12 +00:00
Arvid Norberg 3286437a7d extend peer_list unit test and fix some bugs 2015-01-20 23:56:45 +00:00
Arvid Norberg d9e69db0cb actually make use of the max_failcount setting 2015-01-20 06:26:22 +00:00
Arvid Norberg d41d59d780 improve prefer-contiguous-blocks in piece_picker, to actually pick a contiguous range 2015-01-20 03:46:40 +00:00
Arvid Norberg 54eb499803 make post_torrent_updates more flexible by allowing to pass flags to it. The same flags as torrent_handle::status. Also make the default return accurante progress 2015-01-20 02:46:23 +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 e6eb920021 piece picker cleanup 2015-01-19 22:07:53 +00:00
Arvid Norberg 431fa2ac55 fix python binding build (and expose the new dht stats alert) 2015-01-18 21:36:24 +00:00
Arvid Norberg a7bec127f1 relying on local statics being threadsafe still does not seem safe on msvc 2015-01-18 16:52:39 +00:00
Arvid Norberg 609b5eb4ba fix dht logging build 2015-01-18 15:03:18 +00:00
Arvid Norberg 8614ed795a attempt to fix build 2015-01-18 04:40:01 +00:00
Arvid Norberg de616b29c5 fix c++98 support 2015-01-18 02:06:18 +00:00
Arvid Norberg 0afea4bb3e move some DHT verbose stats logging over to performance counters 2015-01-18 01:06:36 +00:00
Arvid Norberg 7441a0a3b3 fix build 2015-01-17 22:09:20 +00:00
Arvid Norberg 22a02f4a1f make dht_tracker be held by shared_ptr instead of intrusive_ptr. remove redundant performance counter (total dht sent/received). report DHT IP overhead to the IP overhead counters 2015-01-17 22:06:30 +00:00
Arvid Norberg 58d93e5aa1 add new (non-deprecated) access to dht stats, asynchronously via an alert 2015-01-17 17:02:58 +00:00
Arvid Norberg b9b657c3d4 post alerts instead of writing to a file, in local peer discovery, when logging is enabled 2015-01-16 23:01:14 +00:00
Arvid Norberg 1ab8d2fa5c fix test_privacy build. fix uninitialized bit in torrent. attempt to filter output from valgrind in regression tests 2015-01-16 04:57:58 +00:00
Arvid Norberg 7668bf5d4c downgrade some todo comments 2015-01-15 19:13:45 +00:00
Arvid Norberg 9bfbb8a52a fix partfile on windows 2015-01-15 03:35:13 +00:00
Arvid Norberg e2d73cfe38 file not found is not an error in exists() 2015-01-15 02:31:38 +00:00
Arvid Norberg 2943bd4d7d make test_privacy more reliable 2015-01-14 01:59:23 +00:00
Arvid Norberg 223154b1f1 fix build 2015-01-13 22:40:16 +00:00
Arvid Norberg d140d71e1a extend logging of UDP tracker announces (to track down unit test flapping) 2015-01-13 21:34:43 +00:00
Arvid Norberg 9172874b5c fix storage error (recently introduced) where the mapped_files object would not be updated when renaming files that did not exist on disk 2015-01-13 18:28:06 +00:00
Arvid Norberg 95f889b247 some debug output 2015-01-13 06:11:42 +00:00
Arvid Norberg c9903bdaf2 use O_SYNC when available 2015-01-07 23:21:54 +00:00
Arvid Norberg c9075a530d fix build 2015-01-06 22:17:22 +00:00
Arvid Norberg 1a53a454ec fix ssl unit test 2015-01-06 08:16:03 +00:00
Arvid Norberg 0f37e3403c transition from intrusive_ptr to shared_ptr. don't export initialize_default_settings 2015-01-06 08:08:49 +00:00
Arvid Norberg a462f58372 use hardware optimized CRC32C function in DHT 2015-01-05 13:50:42 +00:00
Arvid Norberg 1b254e16c2 remove comment 2015-01-05 12:25:10 +00:00
Arvid Norberg 73a4755f13 fix asio-debugging bug in udp_socket 2015-01-05 12:22:31 +00:00
Arvid Norberg 3be0430036 merged changes from RC_1_0 2015-01-05 12:15:16 +00:00
Arvid Norberg bb33b061e4 clean up session_impl 2015-01-04 22:26:26 +00:00
Arvid Norberg 35b41858cf deprecated session_status and session::status() in favor of performance counters 2015-01-04 21:31:02 +00:00
Arvid Norberg 55e51ab57c merged changes from RC_1_0 2015-01-04 21:18:00 +00:00
Arvid Norberg 68ffd3c47c restore breakage of recalculate_automanaged_torrents, and fix the logic for checking torrents 2015-01-04 21:14:46 +00:00
Arvid Norberg 1218e328cd SSL fixes (especially over uTP) 2015-01-04 01:04:56 +00:00
Arvid Norberg d68471805e improve support for HTTP where one direction of the socket is shut down 2015-01-03 22:38:17 +00:00
Arvid Norberg f839b8c9b4 factor creating of directories into default_storage::open_file to make that functionality more robust and fix a bug where moving files out of the part-file would fail because the directories hadn't been created yet 2015-01-03 16:57:21 +00:00
Arvid Norberg b897a6ce29 fix bug in settings_pack causing intermittent unit test failures. added unit test to cover the bug 2015-01-03 16:52:22 +00:00
Arvid Norberg 290260054d fix http restart-piece bug whose fix apparently failed to merge from RC_1_0 a long time ago. Also improve logging of restart pieces 2015-01-03 13:09:09 +00:00
Arvid Norberg 9b0f7bbe72 move function from header to .cpp file 2015-01-02 00:51:09 +00:00
Arvid Norberg dbf461ac23 make DHT dos mitigation parameters configurable via dht_settings 2015-01-01 23:24:21 +00:00
Arvid Norberg f77e12ac04 clean up symbol exports 2015-01-01 20:25:39 +00:00
Arvid Norberg a1c1f9393d fix flush_pieces in disk_io_thread to also flush the read cache 2015-01-01 10:10:13 +00:00
Arvid Norberg 092362e9bc remove internal fields from web_seed_entry 2014-12-31 22:05:34 +00:00
Arvid Norberg 764b09d6b5 make the peer fingerprint a regular setting and remove it from the main session constructor argument list 2014-12-31 15:51:45 +00:00
Arvid Norberg 1039d4ae86 tweak some TODO comments and fix one 2014-12-31 14:41:35 +00:00
Arvid Norberg bc117e5f40 merged changes from RC_1_0 2014-12-31 09:30:23 +00:00
Arvid Norberg eefba55419 fix assert in utp_stream at high rates 2014-12-30 20:44:18 +00:00
Arvid Norberg 7d53b7efd3 fix merge error 2014-12-30 16:56:03 +00:00
Arvid Norberg fcf6beace5 merged changes from RC_1_0 2014-12-30 09:02:20 +00:00
Arvid Norberg e9414894e2 separate the configuration of crypto library and whether protocol encryption is enabled or not. make protocol encryption always use the built-in rc4 and tommath code. SHA-1 hashing is done by the crypto library 2014-12-29 16:50:22 +00:00
Arvid Norberg ae47823970 don't fail renaming a file in a torrent just because it doesn't exist (and the destination directory doesn't exist) 2014-12-26 21:25:37 +00:00
Arvid Norberg 0977d94dbc merged changes from RC_1_0 2014-12-25 11:24:02 +00:00
Arvid Norberg ca3c1620bd merged changes from RC_1_0 2014-12-17 14:33:52 +00:00
Arvid Norberg 20b4608c38 optimize copying torrent_info and file_storage objects 2014-12-17 05:33:16 +00:00
Arvid Norberg 13a9c3c78d we no longer support including file-hashes when creating torrents 2014-12-17 03:50:01 +00:00
Arvid Norberg 6214aef0c5 merged changes from RC_1_0 2014-12-17 03:19:42 +00:00
Arvid Norberg ae04b80fe1 cancel non-critical DNS lookups when shutting down, to cut down on shutdown delay 2014-12-17 02:44:27 +00:00
Arvid Norberg 6f19f9a063 lt_trackers is no longer a default extension 2014-12-10 09:59:24 +00:00
Arvid Norberg a3d1a493fd disable logging alerts in client_test 2014-12-10 09:45:38 +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 1ce3bdf0d0 update send and received byte performance counters immediately, to avoid the one second quantization in stats 2014-12-10 05:49:17 +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 066cbf1a9f merged changes from RC_1_0 2014-12-02 10:18:07 +00:00
Arvid Norberg 4376d26399 merged changes from RC_1_0 2014-12-01 10:43:34 +00:00
Arvid Norberg 362b54421d merged changes from RC_1_0 2014-11-30 10:07:19 +00:00
Arvid Norberg 601f8c0476 merged changes from RC_1_0 2014-11-29 09:12:44 +00:00