Commit Graph

5726 Commits

Author SHA1 Message Date
Steven Siloti 5d0322d393 fix assertion in fingerprint::to_string 2016-12-07 20:52:45 -05:00
arvidn 864fcfaced initialize piece priorities to 4 2016-12-04 18:36:45 -05:00
arvidn 8874a907ef fix to file priorities 2016-12-03 00:57:52 -05:00
arvidn 4df1ecbe25 re-enable some warnings and fix code 2016-11-20 01:05:16 -05:00
tnextday b25ea5329f updates `m_last_sent` in `peer_connection::setup_send()` instand of `peer_connection::keep_alive()` 2016-11-19 02:03:12 -05:00
arvidn f33d1b32e3 add trackers from add_torrent_params/magnet links to separate tiers 2016-11-09 18:44:01 -05:00
Arvid Norberg f5c7a49d61 remove incorrect deleted-storages assert and add some more test coverage in test_metadata_extensions (#1286) 2016-11-03 19:39:42 -04:00
Arvid Norberg 21d05945f2 documentation and deprecation fixes (#1275)
documentation and deprecation fixes
2016-10-31 20:00:01 -04:00
Arvid Norberg 7476f7875e don't check file-sizes resume data for files that likely is in the partfile (#1268) 2016-10-29 13:53:24 -04:00
Arvid Norberg d1a59879cb deprecate mmap_cache (#1269)
deprecated mmap_cache feature
2016-10-29 13:42:42 -04:00
Arvid Norberg 61af222d92 add utility function for generating peer ID fingerprint (#1249)
add utility function for generating peer ID fingerprint
2016-10-25 08:03:26 -04:00
Steven Siloti cf7db392b6 assert that offset didn't change while hashing 2016-10-25 07:59:02 -04:00
Steven Siloti f36b9a805a avoid concurrent access to hash offset
Since partial_hash::offset is not an atomic it is technically UD to access it
concurrently from multiple threads.
2016-10-25 07:59:02 -04:00
Steven Siloti 241e9fd25a add assert to detect index out-of-range 2016-10-25 07:59:02 -04:00
Arvid Norberg f16d0b7953 add unit test for 'file_sizes' entry in resume data (#1248)
add unit test for 'file_sizes' entry in resume data. fix resume data bug in client_test for magnet links and minor resume data cleanup in default_storage
2016-10-23 22:01:09 -04:00
Arvid Norberg 5012fcf10b fix bug in last-seen-complete (#1234) 2016-10-20 00:15:26 -04:00
Alden Torres fe754453f4 backport of fix for LFS support in android (#1232) 2016-10-20 00:14:03 -04:00
Arvid Norberg 7009001f73 fix ambiguous call to abs() in tommath (#1228)
fix ambiguous call to abs() in tommath
2016-10-20 00:13:45 -04:00
Pavel Pimenov 037f349cee Try resolve #1175 (for RC_1_1) (#1230)
https://github.com/arvidn/libtorrent/pull/1223
2016-10-19 17:29:35 -04:00
Steven Siloti fc7b4c1c4f update comment to reflect new quota definition 2016-10-15 21:32:14 -04:00
Steven Siloti c13286b945 take upload speed into account in round-robin choker
The unchoked peers need to be sorted by upload speed so that the slowest node
will get choked as part of optimistic unchoking.

Also change the minimum quanta to 1 minute instead of 256KB.

Also remove a useless multiply in the fastest peer choker since the priorities
are guarenteed to be equal at that point.

Fixes #1171
2016-10-15 21:32:14 -04:00
Arvid Norberg 25195a7260 back port DHT fixes from master (#1209)
back port DHT fixes from master
2016-10-14 23:47:59 -04:00
Arvid Norberg c966435d1c fix issue where shutting down the session immediately and asynchronously starting the DHT would cause a shutdown hang (#1203) 2016-10-10 22:54:19 -04:00
Arvid Norberg 6bb2d7c017 Sanitize 1.1 (#1197)
enable address sanitizer
2016-10-09 17:00:20 -04:00
Arvid Norberg 5f7e2eb928 run undefined sanitier on travis/linux (#1134)
run undefined sanitizer on travis/linux. back-port ed25519 unit test from master
2016-10-08 12:29:46 -04:00
Arvid Norberg 7a52a285a1 back-port error_code cleanup from master (#1173)
back-port error_code cleanup from master
2016-10-03 16:32:40 -07:00
Steven Siloti 2e0140b6f6 fix peer picking algorithm (#1141)
fix peer picking algorithm. The old code was always picking the first to_pick peers from the set.
2016-09-24 06:08:52 -07:00
Arvid Norberg b20b3ad1ac remove file size limit in torrent_info filename constructor (#1126) 2016-09-21 19:54:42 -07:00
Arvid Norberg 03068ffa0b Merge pull request #1108 from arvidn/user-agent-1.1
user agent anonymous mode
2016-09-21 07:25:15 -07:00
Arvid Norberg 4d716361c0 minor code cleanup (#1116) 2016-09-20 22:10:06 -07:00
arvidn 85a2a5c5cb don't send user-agent in metadata http downloads or UPnP requests when in anonymous mode 2016-09-18 17:16:03 -07:00
Arvid Norberg acf77a5385 fix tail-padding for last file in create_torrent (#1106) 2016-09-18 20:08:27 -04:00
Steven Siloti 0759b732c1 web_peer_connection: make a copy of the request before calling incomi… (#1091)
web_peer_connection: make a copy of the request before calling incoming_piece
2016-09-14 12:29:07 -04:00
sledgehammer999 22043fd186 Use std::random instead of Boost.Random when in c++11 mode. (#1087) 2016-09-13 17:07:01 -04:00
Steven Siloti 850eca1f21 don't pop request until we're done with it (#1085) 2016-09-13 02:37:00 -04:00
milesdong dc4d9af2e6 fix invalid memory access in utp_stream and torrent (#1084)
fix invalid memory access in uTP PMTUd
2016-09-13 02:36:23 -04:00
Alden Torres e4a27c0b4b backport of fix in resolve_links::match (#1068)
backport of fix in resolve_links::match
2016-09-06 18:30:30 -04:00
arvidn b554909486 hint DHT bootstrap nodes of actual bootstrap request 2016-08-30 21:15:35 -04:00
Arvid Norberg 88fe6ae8c3 don't link against sha1.cpp when using libcrypto's implementation (#1040) 2016-08-30 08:25:07 -04:00
Steven Siloti 3a665a1040 fix inconsistant prefix calulcation (#1030)
The special case for calculating the prefix in the last bucket was being
applied to the condidate node but not the existing nodes in the bucket.
2016-08-25 19:26:48 -04:00
Arvid Norberg 558ec097a2 fix applying settings to only take actual updates into account (#1027) 2016-08-22 21:38:57 -04:00
Arvid Norberg 2a36f9015d build mpi.c as c++ to allow including boost headers (#1026)
build mpi.c as c++ to allow including boost headers
2016-08-22 07:59:46 -04:00
arvidn 97ce1b07bf fix building tarball 2016-08-21 20:21:50 -04:00
Arvid Norberg debf3c6e36 update puff.c for gzip inflation (#1022)
update puff.c for gzip inflation
2016-08-21 14:43:44 -04:00
Arvid Norberg 80e5ce9b32 add a default DHT bootstrap node when it's enabled on session startup (#1008)
make the dht bootstrap nodes part of settings_pack instead, to make it possible to set them on startup. and add default
2016-08-21 12:15:19 -04:00
Arvid Norberg daa453ef3b back-port windows stack trace function to 1.1 (#1017)
back port exception handling and stack trace printing from master -> RC_1_1
2016-08-21 01:07:02 -04:00
Arvid Norberg b701fb252a clear alert nofify function when calling abort on a session, to avoid touching a destructed session object (#1015) 2016-08-20 11:04:44 -04:00
arvidn e247473b86 bump version number 2016-08-13 07:12:23 -04:00
Arvid Norberg 8007b947fd make pad-file and symlink support conform to BEP47 (#992)
make pad-file and symlink support conform to BEP47
2016-08-07 22:37:10 -04:00
Steven Siloti bc369683df handle short reads when exporting a file (#990)
handle short reads when exporting a file. Pieces in the part file are not guaranteed to be fully written so short reads need to be handled rather than asserting.
2016-08-07 16:04:29 -04:00
Steven Siloti d4296730d0 fix re-prioritizing a piece while it is downloading (#987)
update_piece_state does not expect that the piece's priority has also changed
since the last time the piece was updated. Make sure the piece's priority is
updated before trying to update the state.
2016-08-07 15:27:04 -04:00
Arvid Norberg 61031f1186 hack to allow timeout utp sockets that are about to be closed (#976) 2016-08-02 00:07:36 -04:00
arvidn 24dd6d0945 fix warning 2016-07-31 10:02:54 -04:00
arvidn 192559f245 fix warnings of unused return values from ftruncate() calls 2016-07-31 03:19:31 -04:00
terry zhao 48ca20968e fix value of current_tracker when all tracker failed (#932)
fix torrent_status::current_tracker when all trackers fail.
2016-07-26 01:13:28 -04:00
Arvid Norberg 6777ec5d05 back-ported dbghlp fix (#946)
back-ported dbghlp fix
2016-07-26 01:05:32 -04:00
Arvid Norberg 0ea449a7b5 make local service discovery cookie support not so random numbers, to make the test reliable (#943) 2016-07-25 08:05:54 -04:00
Arvid Norberg 6370d5bc81 deprecate lt_trackers extension (#940)
deprecate lt_trackers extension
2016-07-24 23:37:03 -04:00
Steven Siloti 3321ca10f1 update our id in the rpc manager when it changes (#942)
update our id in the rpc manager when it changes
2016-07-24 21:30:36 -04:00
Arvid Norberg 5bda955f8f don't send bitfield to peers whose handshake we haven't fully received yet (#925) 2016-07-20 10:11:28 -07:00
terry zhao e75bb120b4 fix range of lsd::cookie (#920)
fix cookie range of lsd in lsd::on_announce
2016-07-18 09:19:45 -07:00
Sivachandran 8f3bd1052e fix mutable dht_get_item failure when salt is non-empty (#909) 2016-07-18 07:12:10 -07:00
Arvid Norberg 80fba1f748 fix crash in session::get_ip_filter when not having set one (#914) 2016-07-17 14:23:54 -07:00
Arvid Norberg e079d0291e fix filename escaping when repairing torrents with broken web seeds (#892)
fix filename escaping when repairing torrents with broken web seeds
2016-07-07 02:22:15 -04:00
Arvid Norberg cf65f85dc3 fix file_completed_alert (#880) 2016-07-03 14:48:18 -04:00
Arvid Norberg 97ad7510af minor refactoring to move-storage patch (#680)
minor refactoring to move-storage patch
2016-06-29 20:05:28 +03:00
Vladimir Golovnev faef995cdc Move storage "file-by-file" (#632)
When moving storage for a torrent, only move files belonging to the torrent, one by one.
2016-06-29 20:05:16 +03:00
Alden Torres ecb64a53a9 backport of popcnt asm for x86 and gcc/clang (#864)
backport of popcnt asm for x86 and gcc/clang
2016-06-28 00:34:21 -04:00
terry zhao 1a3e75b50a fix msvc-8.0 build (#860) 2016-06-27 13:46:15 -04:00
arvidn b97ac65c01 don't perform expensive hash of piece data for logging 2016-06-26 13:11:52 -04:00
arvidn f56d698db6 fix asio-debugging 2016-06-25 17:29:40 -04:00
Arvid Norberg 6917a11c6b correct error introduced in add_torrent_impl refactor, with regards t… (#846)
correct error introduced in add_torrent_impl refactor, with regards to not having flag_duplicate_is_error set (which is not set by default)
2016-06-23 13:19:35 -04:00
arvidn 763d313570 fix bug in enum_net() for BSD and Mac 2016-06-21 19:05:22 -04:00
Alden Torres 38f4765ebc added assert and documentation typos (#816) 2016-06-13 17:16:09 -04:00
Alden Torres d759d8f742 not add peers from url if add_torrent_impl returns invalid handle (#814) 2016-06-13 07:47:16 -04:00
Arvid Norberg 4e0a4db9b4 fixed inverted priority of incoming piece suggestions (#809) 2016-06-12 20:36:05 -04:00
Arvid Norberg 5ecd00c5c5 fix osx build (#804)
fix osx build with asserts enabled
2016-06-11 00:48:13 -04:00
Arvid Norberg 830a79dbcf optimize allow-fast logic (#800)
optimize allow-fast logic
2016-06-09 08:02:41 -04:00
Arvid Norberg 5eaf713d1f revert handshake round-trip optimization (#797)
revert handshake round-trip optimization. it prevents taking advantage of FAST extensions since the bitfield is sent before receiving the other peer's handshake
2016-06-07 21:45:48 -04:00
Alden Torres c8f7d89652 early resume data reset when fatal_disk_error (#798) 2016-06-07 18:44:39 -04:00
Arvid Norberg 3624ce6cfd fixed crash on invalid input in http_parser (#782)
fixed crash on invalid input to http_parser
2016-06-04 09:53:23 -04:00
arvidn ec182492cc improve add_torrent_params::flags documentation and fix related logging bug 2016-05-30 16:36:44 -07:00
Arvid Norberg b3bbb2f0f6 upgrade libtommath to 1.0 (#765)
upgrade libtommath to 1.0
2016-05-28 17:12:26 -04:00
arvidn 67a497834a back-port extra checks in pe_crypto from master 2016-05-27 09:51:06 -07:00
Alden Torres f8dcf30b2e Ported support for magnet x.pe parameter from master (#760) 2016-05-27 12:12:32 -04:00
Alden Torres 10393697cb Fix of parse_endpoint with invalid port character separator (#757) 2016-05-27 12:00:54 -04:00
arvidn 98eabc63e9 using _WIN32 appears safer than WIN32 2016-05-23 23:02:52 -04:00
arvidn 0ce5a4c664 improve robustness in natpmp code a bit 2016-05-23 22:46:46 -04:00
Arvid Norberg 62fb7209ef fix invariant check issue with a paused session (#750)
fix invariant check issue with a paused session
2016-05-22 22:58:11 -04:00
Arvid Norberg b5fc367d17 fix incorrect comparison function when deciding which peer to disconnect (#746)
fix incorrect comparison function when deciding which peer to disconnect
2016-05-22 13:46:37 -04:00
arvidn c292696dcb back-port fix adding empty file as torrent 2016-05-14 13:13:20 -04:00
Arvid Norberg 53bd03558c Dht stats 1.1 (#720)
fix missing dht stats counter updates
2016-05-12 21:27:11 -04:00
Arvid Norberg 4057aa0391 fix issue with comparison of cached time and real-time (#719) 2016-05-09 08:21:00 -04:00
Arvid Norberg 5bedf3e7b3 post add_torrent_alert before any other torrent alert (#717)
post add_torrent_alert before any other torrent alert
2016-05-08 23:48:27 -04:00
arvidn 254906eddc back-port torrent peer-class fix from master 2016-05-07 14:56:22 -04:00
Arvid Norberg bcb359cef6 use unsigned long for ioctl commands (#705) 2016-05-06 08:08:49 -04:00
Arvid Norberg 985436636e added new preformatted type to bencode entry (#698)
added new preformatted type to bencode entry to support carrying a verbatim copy of an already bencoded subtree. This is to support saving torrents in resume data and create_torrent based on existing torrents, in order to preserve key order
2016-05-05 21:38:57 -04:00
Arvid Norberg f9bc6dbc54 improvements to socks5 support (for 1.1.1 release) (#567)
capture listen IP and port from socks5 BIND response. add tests for socks5 and improve support for capturing the local endpoint (i.e. bind port) for BIND command socket connections. post listen_succeeded_alert when successfully bound to listen socket on SOCKS5 proxy. make sure to announce the socks5 listen port
2016-05-05 17:09:11 -04:00
Jonathan McDougall f065cacebf * now calling stop_announcing() unconditionally instead of checking !is_paused(), which was always false when aborting a torrent and could cause infinite blocks while destroying a session (#694)
fixed torrent invariant check that wasn't using the m_abort flag and correctly stop trackers when shutting down
2016-05-03 01:34:43 -04:00
Arvid Norberg 7048eb1f5c be more conservative in marking packets as mtu-probes (#689) 2016-05-02 00:17:17 -04:00
arvidn e0e05e3961 fix asserts firing in unit tests 2016-04-28 21:59:41 -04:00
arvidn b8dad50757 fix whitespace 2016-04-28 17:14:41 -04:00
Alden Torres 96b7d3ad46 Removed unused alert_observer.hpp (#646) 2016-04-26 11:48:43 -04:00
Alden Torres d08bbbc0cc Added asserts related to total_size in create_torrent (#642) 2016-04-26 00:37:47 -04:00
Alden Torres 7c4fabadfd Removed unused statement (#643) 2016-04-24 23:47:57 -04:00
Arvid Norberg a9f07a29bd fix move_storage error handling bug (#638) 2016-04-23 10:02:52 -04:00
Alden Torres 6171c911a0 Added assert for total_size in create_torrent (#636) 2016-04-22 13:51:06 -04:00
Arvid Norberg 423ee1cef4 move some implementation details of bitfield into its own translation unit to not expose MMX and SSE internals (and fix shared linking) (#630) 2016-04-20 07:50:57 -04:00
Arvid Norberg 0b53fb70ad add missing torrent_error_alert::filename function (#629) 2016-04-20 00:46:42 -04:00
Alden Torres 0fddd403b2 Better api for peers() method in dht_get_peers_reply_alert (#628) 2016-04-19 16:16:51 -04:00
arvidn 93408a02ff fix classification of UDP packets as peer traffic 2016-04-18 01:29:46 -04:00
Alden Torres a73d424b82 typos 2016-04-15 15:39:41 -04:00
Steven Siloti 9ffadcde62 allow peers to resume allocating disk buffers when their last outstanding write completes 2016-04-09 16:48:05 -07:00
arvidn 5d499e83b6 fix uTP/SSL 2016-04-09 10:50:45 -04:00
Arvid Norberg 774735b046 Merge pull request #600 from arvidn/python-warnings-1.1
fix some build warnings in python binding
2016-04-08 02:17:45 -04:00
arvidn 5c17dc9f31 fix some build warnings in python binding 2016-04-07 22:45:23 -04:00
arvidn cee2b16949 fix some coverity warnings and move out code to torrent_status.cpp 2016-04-07 21:44:24 -04:00
arvidn 876cef0d4c restore the ipv6 http tracker argument, but restricted to only private torrents 2016-04-07 00:06:04 -04:00
Arvid Norberg 6767cf96f1 Merge pull request #546 from arvidn/move-into-self-1.1
fail correctly when move_storage is called to move into itself 1.1
2016-04-06 17:49:05 -04:00
arvidn 387498e54f clean up in piece picker 2016-04-06 00:45:21 -04:00
Alden Torres bb8d1d0e56 Revert utp log file to disable by default
Documentation typos
2016-04-03 22:32:06 -04:00
arvidn dff0e7b0cd fix concurrency issue in part_file::export_file 2016-04-02 21:29:20 -04:00
arvidn 31805ecec0 fix some clang build warnings 2016-04-02 12:27:42 -04:00
arvidn 6bc5de5903 fail correctly when move_storage is called to move into its own directory 2016-04-02 10:03:31 -04:00
arvidn 7f232dd195 fix python3 issue in binding 2016-03-30 23:35:47 -04:00
arvidn 7649610807 fix test_optimistic_unchoking sim 2016-03-27 18:40:53 -04:00
arvidn 3e7a6b03e5 remove dead code in peer_connection 2016-03-21 18:47:17 -04:00
arvidn 0095aa084f make coalesce reads and coalesce writes actually work 2016-03-20 16:34:19 -04:00
arvidn a9d12766d4 fix typo in hard_link() 2016-03-20 16:14:29 -04:00
Arvid Norberg db214cc92d Merge pull request #559 from arvidn/direct-io-1.1
remove unused O_DIRECT mode
2016-03-20 14:42:58 -04:00
arvidn 139fb29647 remove unused O_DIRECT mode, and relax/simplify alignment requirements for coalesce_buffers 2016-03-20 00:55:31 -04:00
arvidn 85cf5ac195 remove unused aligned_holder class. fix logging issue of out-of-bound piece requests 2016-03-19 23:32:50 -04:00
Arvid Norberg e9b334ce63 Merge pull request #494 from arvidn/udp-bind-failure-1.1
attempt to fix issue with binding udp sockets on windows
2016-03-19 13:20:51 -04:00
arvidn 53b5e964d2 fix merge issue and properly close ssl udp socket when disabled, prevents the extra listen_succeeded alert for the ssl udp socket 2016-03-19 10:25:35 -04:00
arvidn e9a5985609 if a udp socket is already bound to the IP and port we want to bind it to, don't reopen it 2016-03-19 10:25:30 -04:00
arvidn d705dc2953 attempt to fix issue with binding udp sockets on windows 2016-03-19 10:25:30 -04:00
arvidn f7c9062019 deprecate more parts of explicit cache as well as fixing typos of TORRENT_NO_DEPRECATE preprocessor tests 2016-03-19 07:54:29 -04:00
arvidn c0033d0977 do not enable SSL listen sockets by default 2016-03-18 23:57:02 -04:00
arvidn b446fe4bba deprecate settings_pack::hashing_threads and replace it with aio_threads in documentation 2016-03-18 16:40:52 -04:00
arvidn 3c98868f6c deprecate explicit cache feature 2016-03-18 12:15:03 -04:00
arvidn 1cd5119178 remove/deprecate bad idea with mlock 2016-03-17 19:37:05 -04:00
arvidn 317eb2fe2a remove unused disk allocation code 2016-03-16 20:13:28 -04:00
Arvid Norberg a1d60db706 Merge pull request #547 from arvidn/no-read-cache-1.1
fix use_read_cache=false
2016-03-16 08:14:15 -04:00
arvidn 4926081960 fix use_read_cache=false 2016-03-16 02:22:18 -04:00
arvidn 36d0cfe40d fix shutdown issue caused by peer connections being kept alive by disk buffer pool callbacks 2016-03-16 00:28:19 -04:00
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
Steven Siloti 4331f57021 restrict check_cache_level to only runing on one thread at a time
If another thread trys to call check_cache_level then m_cache_check_state is set
to indicate that the thread currently in check_cache_level needs to call it again.
2016-03-14 19:03:12 -07:00
Steven Siloti d405535a3f try to free the piece after kicking the hasher and flushing 2016-03-14 19:03:12 -07:00
Steven Siloti e8f93df700 fix indentation 2016-03-14 19:03:12 -07:00
Steven Siloti 826bbe35ee always cache writes 2016-03-14 19:03:12 -07:00