Commit Graph

6116 Commits

Author SHA1 Message Date
Alden Torres 2b58cb9de3 using std instead of boost for integral types and some headers cleanup 2016-11-12 21:22:59 -05:00
arvidn ccd539f977 pull check resume data logic out of piece_manager into disk_io_thread and simplify it 2016-11-12 18:03:18 -05:00
arvidn c9333849e6 deprecate relative times in torrent_status, replaced by std::chrono::time_point 2016-11-12 17:37:10 -05:00
arvidn bba121d010 fix recent regression causing potential duplicate add_torrent_alerts 2016-11-12 01:03:38 -05:00
arvidn e447a50c9d use enum class in udp_tracker_connection 2016-11-11 21:39:54 -05:00
arvidn 583082a3a0 merged RC_1_1 into master 2016-11-09 19:53:55 -05:00
arvidn f33d1b32e3 add trackers from add_torrent_params/magnet links to separate tiers 2016-11-09 18:44:01 -05:00
Alden Torres 1a159666ff some refactor in ip change notifier source code (#1301)
some refactor in ip change notifier source code. using NETLINK_ROUTE (value 0) as the default nl_family
2016-11-08 03:44:43 -05:00
Steven Siloti e589e342ef reopen listen sockets when the system's IP changes (#1299)
reopen listen sockets when the system's IP changes. Only Linux and Windows supported for now.
2016-11-07 07:40:09 -05:00
arvidn 11ca69b9fc simplify disk_io_thread interface by setting the number of threads via settings rather than a separate function 2016-11-06 23:07:09 -05:00
arvidn 3ff89f29d7 remove explicit ticking of storage from the torrent. instead make the disk_io_thread do it automatically 2016-11-06 10:26:10 -05:00
arvidn c72053a75c remove unused clear_read_cache function 2016-11-05 21:39:45 -04:00
arvidn 2a999e1ea7 merge RC_1_1 into master 2016-11-03 23:58:35 -04: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
arvidn d91f6f8c05 merged RC_1_1 into master 2016-11-03 01:19:38 -04:00
Alden Torres aef614a74c fix build warnings/errors, typos and minor cleanup (#1277)
fix build warnings/errors, typos and minor cleanup. no need to provide boost::throw_exception, better left it to the user
2016-11-02 01:03:12 -04:00
Arvid Norberg 09cbd0a51d remove deprecated disk_io_thread operations (#1284) 2016-11-02 01:01:27 -04:00
Arvid Norberg b61ebca14a moved async-load-torrent feature out of disk-io-thread (#1282)
moved async-load-torrent feature out of disk-io-thread into a generic worker thread
2016-11-02 01:01:04 -04:00
Arvid Norberg 1c2a8fb96e move coalescing of reclaim block from disk_io_thread to session_impl (#1281) 2016-10-31 23:48:30 -04:00
Arvid Norberg 21d05945f2 documentation and deprecation fixes (#1275)
documentation and deprecation fixes
2016-10-31 20:00:01 -04:00
Arvid Norberg 8daa200d11 simplify interaction with disk_io_thread by removing the uncork interface (#1271)
simplify the interaction with the disk_io_thread by removing the uncork interface. This should be turned into a transparent part of peer_connection instead and remove cork logic from peer_connection
2016-10-30 18:21:07 -04:00
arvidn b97bb84a9f merge RC_1_1 into master 2016-10-29 14:25:57 -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
Alden Torres dac0b9ec64 more use of nullptr, minor refactor and formatting (#1267) 2016-10-28 12:28:27 -04:00
arvidn 500bb24dba merged RC_1_1 into master 2016-10-26 23:30:58 -04:00
Arvid Norberg 5f3c52f406 transition to more default member initializers (#1261) 2016-10-26 20:41:57 -04:00
Steven Siloti f5366bd816 use span for scatter/gather lists (#1260)
use span for gather/scatter buffers. remove explicit size parameter from file_op
2016-10-26 20:40:56 -04:00
Alden Torres 6751a1eeb1 removed spaces in template types and more c++11 auto/loop refactor 2016-10-26 00:08:00 -04:00
Alden Torres 4eebd0c68a minor refactor, compilation fix when DEBUG_DISK_THREAD and missing convert_to_native (#1256) 2016-10-25 20:46:23 -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
Arvid Norberg 675d16a2c3 remove remainder of eviction/ghost torrent feature (#1251)
remove remainder of eviction/ghost torrent feature
2016-10-25 08:02:34 -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
Alden Torres 8bdbaec872 minor cleanup refactor (#1252) 2016-10-24 20:19:01 -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 5341be1e84 more improvement to error/exception handling (#1247)
improvement to error/exception handling
2016-10-22 22:00:47 -04:00
Steven Siloti a6e5ba8804 return a span from TORRENT_ALLOCA (#1244)
return a span from TORRENT_ALLOCA

Unfortunately this requires moving the variable declaration inside the macro.
Due to alloca’s unique properties pretty much the only safe way to call it is
in a simple assign-to-pointer expression. Therefor we need to use a temporary
pointer to store the value returned from alloca before we can call span’s ctor.

This also causes double evaluation of the size parameter which is unfortunate,
but no current callers of TORRENT_ALLOCA have a problem with this. Passing
expressions with side effects to macros is bad mojo anyways.
2016-10-22 14:43:40 -04:00
Pavel Pimenov e9f9c3ca22 Fix sizeof(values)/sizeof(values[0] (#1246) 2016-10-22 14:12:23 -04:00
Arvid Norberg 6148984426 remove whitespace at end of line (#1245) 2016-10-22 11:47:24 -04:00
arvidn 31d34fec41 fix issue in previous block_cache patch 2016-10-22 11:08:19 -04:00
Arvid Norberg 2d2874d252 minor block_cache cleanup. make hash be a unique_ptr (#1241) 2016-10-21 07:37:15 -04:00
Alden Torres a12f62593e minor code refactor in disk_io_thread and block_cache (#1238) 2016-10-21 00:25:48 -04:00
Pavel Pimenov 8c20f4e1fd utp_match: Reduced call boost::asio::ip::address address() (#1235)
check connection ID before source address in uTP connection lookup
2016-10-20 20:49:59 -04:00
Alden Torres ad6af13129 deleted mpi.cpp from merge of RC_1_1 (#1236) 2016-10-20 16:16:42 -04:00
arvidn b1e22e6183 merged RC_1_1 into master 2016-10-20 00:36:54 -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
Pavel Pimenov 91845aa6c8 Prevent duplicate url (#1231)
prevent creating torrents with duplicate trackers as well as adding duplicate trackers to torrent_info
2016-10-19 17:28:35 -04:00
Alden Torres 5f04103a9d ensure posix calls with LFS support are used in android (#1226) 2016-10-19 13:00:03 -04:00
Alden Torres ded3ed6abf refactor in alert types to use more const fields and more clear API (#1222)
refactor in alert types to use more const fields and more clear API
2016-10-19 01:32:15 -04:00
Arvid Norberg 524f7b1c27 fix error handling by exercising code paths where memory allocations fail (#1221)
fix error handling by exercising code paths where memory allocations fail
2016-10-19 01:18:05 -04:00
Arvid Norberg 85fe06659e fix buffer overrun in dht_get_peers_reply_alert (#1219) 2016-10-16 19:40:39 -04:00
Alden Torres 0f20af3710 minor refactor, consts and cleanup in alerts (#1210)
minor refactor, consts and cleanup in alerts
2016-10-16 03:12:41 -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 c4119158a4 use in-class initializers for torrent_status (#1215) 2016-10-15 17:35:50 -04:00
Arvid Norberg c18c12a144 remove ghost torrent/torrent eviction feature. (#1214)
remove ghost torrent/torrent eviction feature. It was very complex and did not solve the problem very well
2016-10-15 13:32:59 -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
Angel Leon 9cdf0ee50c Boolean simplifications (oct 13th 2016) (#1211)
boolean simplifications
2016-10-14 16:13:18 -04:00
Alden Torres 8839722bec minor http related code cleanup (#1212) 2016-10-14 16:12:02 -04:00
Arvid Norberg 540b5b28d7 use signed counters in traversa_algorithm, and add some more asserts (#1208)
use signed counters in traversal_algorithm, and add some more asserts
2016-10-14 08:03:09 -04:00
Arvid Norberg e0c8ad738d include target in DHT lookups, when queried from the session (#1207) 2016-10-12 23:39:00 -04:00
Alden Torres e0d7729f87 using arm neon inline assembly and using it only if in 32 bits (#1201)
using arm neon inline assembly
2016-10-12 00:02:02 -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
arvidn 57704d0249 Merge branch 'master' of https://github.com/arvidn/libtorrent 2016-10-08 14:18:12 -04:00
arvidn 1c89fcda48 merge RC_1_1 into master 2016-10-08 14:17:51 -04:00
Arvid Norberg 20f65946f2 make single-argument constructors explicit (#1194)
make single-argument constructors explicit
2016-10-08 14:07:11 -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 7bfb97ba44 use in-class default initializers for utp_stream class members (#1196)
use in-class default initializers for utp_stream class members
2016-10-08 12:12:33 -04:00
Alden Torres f580fcaa67 refactor in buffer.hpp to not use anonymous namespace in header (#1192)
refactor in buffer.hpp to not use anonymous namespace in header
2016-10-08 01:12:34 -04:00
Pavel Pimenov 93d8955750 Fix #1182 (#1188)
Add webseed URL duplicate check
2016-10-07 15:36:40 -04:00
Pavel Pimenov af2a9a875b Fix sizeof(X)/sizeof(T) and _countof (#1189)
https://msdn.microsoft.com/en-us/library/ms175773.aspx
 http://www.viva64.com/en/w/V651/print/
2016-10-06 17:45:35 -04:00
Arvid Norberg 5c361715da handle exceptions in session and torrent io_service jobs (#1185)
handle exceptions in session and torrent io_service jobs
2016-10-06 00:08:14 -04:00
Arvid Norberg 3c355bb3f8 use string_view in alert constructors (#1186) 2016-10-04 23:58:26 -04:00
Alden Torres 9343f2fbfb minor header cleanup and refactor (#1179) 2016-10-04 07:43:34 -07:00
Alden Torres be70afa4b8 refactor log methods in public peer_connection_handle for stable ABI (#1180)
expose log functions in peer_connection_handle with empty bodies when logging is disabled
2016-10-03 21:35:40 -07: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
Arvid Norberg 8bb7aa62ae generalize and improve http redirect support for web seeds (#1060)
generalize and improve http redirect support for web seeds
2016-10-02 23:08:03 -07:00
Arvid Norberg cebd976cc2 fix error_code vs. error_condition traits (#1169)
fix error_code vs. error_condition traits. deprecate get_*_category(), instead use *_category()
2016-10-02 12:27:50 -07:00
Alden Torres 1974dca150 minor refactor of dht_default_storage (#1166)
refactor of dht_default_storage structures
2016-09-30 20:42:57 -04:00
Alden Torres 331a8d53c0 refactor to use move with dht_state (#1163)
refactor to use move with dht_state
2016-09-29 08:25:51 -04:00
Alden Torres af92e91a90 missing inc dht counter and minor cleanup (#1164) 2016-09-28 23:25:08 -04:00
Alden Torres 84e735c0ea refactor for more use of move with settings_pack (#1162) 2016-09-28 13:28:43 -04:00
Steven Siloti 85dd682551 fix adding a node with unknown id (#1161)
Commit a414e4c3 broke adding nodes with unknown id to the routing table by
causing them to be evicted when they responded with their real id. This should
have been caught by test_bootstrap, but a typo caused that test to silently
exit early.
2016-09-28 13:28:21 -04:00
Alden Torres 8caebbd026 alerts refactor to use span, don't break ABI when logging, fix compilation (#1159)
alerts to use span, don't break ABI when logging, fix compilation
2016-09-27 23:21:18 -04:00
Arvid Norberg f592d7fcb0 various cleanup and formatting updates (#1158) 2016-09-26 20:05:04 -04:00
Alden Torres 31ce1e5a2c dht headers and minor cleanup (#1157) 2016-09-26 18:04:42 -04:00
Arvid Norberg 9cebd4569f general cleanup of disk_buffer_holder and tailqueue (#1156)
general cleanup of disk_buffer_holder and tailqueue
2016-09-26 14:22:38 -04:00
Arvid Norberg 179e238561 move bitfield's find_first_set and find_last_clear into cpp file (#1155) 2016-09-26 10:58:09 -04:00
Arvid Norberg 97c6a75084 add proper error handling to peer connections and session (#1149)
add proper error handling to peer connections and session. i.e. catch exceptions in asio handlers and catch by const reference
2016-09-25 09:50:48 -04:00
Alden Torres b60fe066e2 compare with generic_category in close_reason (#1152) 2016-09-25 01:42:45 -04:00
Alden Torres 4693fcf3f1 dht source code and headers cleanup (#1150) 2016-09-24 22:20:20 -04:00
Arvid Norberg da8af033cc modernize utf8 conversion functions to throw and move (#1145)
modernize utf8 conversion functions to throw and move
2016-09-24 22:16:10 -04:00
Arvid Norberg 372d992d8e make connection_type enum an enum class (#1146) 2016-09-24 10:47:17 -07:00
Arvid Norberg d2002c5248 separate piece_block and has_block out to their own headers (#1148) 2016-09-24 08:46:56 -07:00