Commit Graph

2071 Commits

Author SHA1 Message Date
arvidn df299fcb00 use boost::variant for disk_io_job in/out parameter, to support holding a proper disk io buffer handle and string 2017-04-17 15:08:27 -04:00
arvidn cef9773c70 generalize part_file::export_file to pass back the buffers to a callback function 2017-04-15 20:01:18 -04:00
arvidn 79d7ae3638 separate path and filesystem functions out into its own translation unit/header file pair, separating it from the file and directory class 2017-04-11 18:07:55 -04:00
Arvid Norberg c35718d322 use unsigned integer for file and storage flags (#1895)
use unsigned integer for file and storage flags
2017-04-09 01:28:46 -04:00
arvidn 51c42adc3e steps towars making file_pool private to disk_io_thread 2017-04-07 08:38:35 -04:00
Alden Torres 6888296c43 added compare_less_wrap test 2017-04-04 23:12:48 -04:00
Alden Torres 0132221031 minor code cleanup, std:: prefix, consts, typos 2017-04-04 23:12:48 -04:00
Alden Torres 45bea967c2 added resolver_cache_timeout setting (#1878)
added resolver_cache_timeout setting
2017-04-04 18:23:37 -04:00
Arvid Norberg 64ad4f5c96 enable warnings when building tests (#1880) 2017-04-02 14:22:17 -04:00
arvidn 0319b53d5f imrove some test coverage and fix bug in trim() function 2017-03-31 09:43:25 -04:00
arvidn 6584423737 don't include base32encode in the build when i2p is disabled 2017-03-31 07:24:50 -04:00
Arvid Norberg 65a2413797 make parse_magnet_uri take a string_view instead of std::string (#1870)
make parse_magnet_uri take a string_view instead of std::string
2017-03-30 22:55:54 -04:00
Arvid Norberg b8e77444d5 use span for read_resume_data() (#1867)
use span for read_resume_data()
2017-03-29 16:10:32 -04:00
Arvid Norberg 8ebbad19d4 deprecate add_torrent_params::url field. use parse_magnet_uri instead (#1864)
deprecate add_torrent_params::url field. use parse_magnet_uri instead
2017-03-29 02:16:07 -04:00
arvidn 86786770b7 merged RC_1_1 into master 2017-03-27 01:24:43 -04:00
arvidn 910ccc528f deprecate torrent_added_alert in favor of add_torrent_alert 2017-03-26 22:48:17 -04:00
arvidn 6cdd598e7c make add_torrent_params movable and have add_torrent/async_add_torrent take it by value 2017-03-26 16:48:57 -04:00
Arvid Norberg 103b1176c1 remove torrent_file_path asynchronous loading of .torrent files. (#1848)
remove torrent_file_path asynchronous loading of .torrent files. This is not the responsibility of the client, to simplify and unify the path of adding torrents
2017-03-26 09:16:42 -04:00
arvidn 488c1a2dcf deprecated (undocumented) file:// urls, added torrent_file_path alternative 2017-03-23 20:26:55 -04:00
Alden Torres be0e54b637 expand alerts_types test of static class values to all alerts 2017-03-23 17:46:26 -04:00
Alden Torres fcbcc250bb fix setup of DHT logic in session_impl::init (#1830)
fix setup of DHT logic in session_impl::init
2017-03-23 08:32:56 -04:00
Arvid Norberg 17f371ddf2 fix alignment issues in heterogeneous_queue (#1834)
fix alignment issues in heterogeneous_queue
2017-03-20 17:41:00 -04:00
arvidn 1dd0e9b280 use string_view instead of strcmp 2017-03-18 15:54:38 -04:00
Alden Torres 1280c7f7ae is_ip_address refactor and minor code cleanup (#1828)
is_ip_address refactor and minor code cleanup
2017-03-18 11:07:17 -04:00
Alden Torres 014a07a5c8 allow DHT bootstrap to use nodes of both IP protocols 2017-03-17 20:51:38 -04:00
Alden Torres dba94a9276 fix IndexType template parameter in typed_span member functions (#1819)
fix IndexType template parameter in typed_span member functions
2017-03-17 18:15:11 -04:00
Arvid Norberg 827372f9ab fix master build after merge (#1813)
fix master build after merge
2017-03-15 07:15:36 -04:00
arvidn 3a1379ef1e merged RC_1_1 into master 2017-03-14 12:55:13 -04:00
arvidn 6d2d736cec fix test_ssl.cpp build with newer versions of boost 2017-03-12 21:10:14 -04:00
Arvid Norberg 3f90501934 add support for IPv6 peers from udp trackers (#1802)
add support for IPv6 peers from udp trackers
2017-03-11 02:46:51 -05:00
Alden Torres 6ab18136f0 created new session_stats_header_alert, master rebase 2017-03-10 21:04:12 -05:00
arvidn 6929d051f1 fix build without deprecated functions 2017-03-09 00:19:02 -05:00
arvidn 6d54c20adf merge RC_1_1 into master 2017-03-08 18:01:59 -05:00
arvidn 56925ee8f3 fix openssl include in makefile 2017-02-26 14:07:55 -05:00
arvidn 081365fbcf merge RC_1_1 into master 2017-02-26 00:48:12 -05:00
arvidn 5a19c9a5a1 fix makefile 2017-02-25 23:01:28 -05:00
Arvid Norberg 3e83c4119f fix recent settings_pack ABI regression (#1752)
fix recent settings_pack ABI regression
2017-02-24 08:06:59 -05:00
Andrei Kurushin 7a8ffc2f2d fix web_seed redirects (#1651)
fix web_seed redirects, make all redirects ephemeral (to avoid resume serialization). remove dup slash for redirects in proxy mode. consolidate {convert_path_to_posix,escape_path} to escape_file_path
2017-02-22 22:46:33 -05:00
Alden Torres ee4d82d166 fix in DHT counters, alert types test, typos, formatting (#1747)
fix in DHT counters, alert types test, typos, formatting
2017-02-22 17:40:14 -05:00
Arvid Norberg 5f69e8217c clean up xml parser, to use string_view (#1731)
clean up xml parser, to use string_view
2017-02-19 07:34:55 -05:00
Alden Torres 1e98bf19a5 added support for enumerating the internal DHT live nodes (#1712)
added support for enumerating the internal DHT live nodes
2017-02-18 23:02:23 -05:00
arvidn 2c51c59327 merge RC_1_1 into master 2017-02-18 13:29:12 -05:00
Alden Torres 1ab1b98138 optimized dht_get_peers_reply_alert storage and created alerts unit test (#1714)
optimized dht_get_peers_reply_alert storage and created alerts unit test
2017-02-18 00:13:46 -05:00
arvidn f01801339c add test to make sure magnet links that fail to be parsed report errors 2017-02-17 15:37:38 -05:00
arvidn 3ffa3f2a08 merged RC_1_1 into master 2017-02-17 00:35:49 -05:00
Andrei Kurushin 9bee2146d0 complete UNC path support (#1689)
complete UNC path support. all internal file api functions handle long size paths (> MAX_PATH) and special names (CON,PRN ...) with unit test
2017-02-16 23:47:08 -05:00
arvidn 49254e5663 fix test_ssl build 2017-02-14 00:16:12 -05:00
Andrei Kurushin b922357c48 backport test framework directory creation fix (#1707)
backport test framework directory creation fix
2017-02-13 16:37:45 -05:00
arvidn cbd1c26a11 fix ABI compatibility issue introduced with preformatted entry type 2017-02-12 20:42:30 -05:00
arvidn ee2688b83a use unique_ptr for packets in utp_stream 2017-02-11 17:11:49 -05:00
Alden Torres c8569b5e34 fixing sign-conversion warnings, part 12, minor refactor, eol cleanup (#1670)
fixing sign-conversion warnings, part 12, minor refactor, eol cleanup. created aux::clamp and default_piece_priority refactor
2017-02-07 00:22:30 -05:00
Alden Torres b84766e346 minor cleanup refactor 2017-02-06 18:26:59 -05:00
Arvid Norberg 9e4045ed42 use 32 bit time points in torrent (#1662)
use 32 bit time points in torrent and add some slack to time point comparisons in python test
2017-02-05 19:18:06 -05:00
arvidn 381defab05 merged RC_1_1 into master 2017-02-05 12:51:48 -05:00
arvidn 7ff4f56ae2 add function to get default settings 2017-02-05 11:31:43 -05:00
Arvid Norberg c00a25a645 back-port aldenml's fix to not save replacement nodes twice to 1.1 (#1661)
back-port aldenml's fix to not save replacement nodes twice to 1.1
2017-02-04 19:58:32 -05:00
Alden Torres 3ef4109bf3 avoid double saving of replacements nodes, removed replacement_cache, test (#1656)
avoid double saving of replacements nodes, deprecated replacement_cache, test
2017-02-04 11:25:11 -05:00
arvidn c9a2fed2c9 add tests for edge cases of session settings, and fix a few integer overflows 2017-02-03 20:42:59 -05:00
arvidn 335beb4bb1 fix msvc build 2017-02-03 08:17:35 -05:00
arvidn 7492a29ea9 fix typo 2017-02-03 00:12:37 -05:00
arvidn c8e488b094 merged RC_1_1 into master 2017-02-02 22:58:33 -05:00
Falcosc e40bdc566c 1.1.2 set queue position by number (#1617)
set queue position by number
2017-01-30 21:31:31 -05:00
Alden Torres deecdb6cfa added support for infohashes sample in dht storage (#1586)
added support for infohashes sample in dht storage
2017-01-28 20:24:53 -05:00
arvidn 17ee28d176 Merge branch 'master' of https://github.com/arvidn/libtorrent 2017-01-28 14:36:28 -05:00
arvidn 6b91adab6a merged RC_1_1 into master 2017-01-28 14:36:23 -05:00
Alden Torres 3803661863 moved alloca.hpp to private aux_ and size refactor (#1634)
moved alloca.hpp to private aux_ and size refactor
2017-01-27 12:43:34 -05:00
arvidn a5284b583c fix bug in udp tracker announce messages 2017-01-26 23:46:55 -05:00
arvidn 605227d9da add test for get_cache_info 2017-01-24 01:31:16 -05:00
arvidn c239c2bdc4 factor out storage_piece_set into its own file 2017-01-22 09:29:52 -05:00
arvidn d03540e3b3 move disk_job_fence to its own file 2017-01-22 01:20:27 -05:00
Arvid Norberg 6a701437b6 use strong_typedef for peer_class_t type (#1595)
use strong_typedef for peer_class_t type
2017-01-21 22:40:19 -05:00
arvidn 173951ec7f merged RC_1_1 into master 2017-01-21 02:28:29 -05:00
arvidn 6d17f0fb66 storage optimization to peer classes 2017-01-21 01:23:07 -05:00
arvidn 202386dd9d factor out verify_resume_data to storage_utils 2017-01-20 01:36:03 -05:00
arvidn c7c204280a make sure torrent_info::is_valid returns false when the file fails to load 2017-01-18 23:58:33 -05:00
arvidn 8a35e42012 fix build 2017-01-15 08:25:10 -05:00
Arvid Norberg 04589f3bef don't load user_agent and peer_fingerprint from session_state (#1538)
don't load user_agent and peer_fingerprint from session_state
2017-01-15 01:21:52 -05:00
arvidn 934c58a816 merged RC_1_1 into master 2017-01-15 00:45:17 -05:00
Falcosc 9199756a27 fix bitfield m_buf null pointer (#1526)
fix operations on empty bitfield
2017-01-13 17:08:54 -05:00
Arvid Norberg 2120a13869 fix file rename issue with name prefix matching torrent name (#1524)
fix file rename issue with name prefix matching torrent name
2017-01-13 00:39:49 -05:00
Arvid Norberg 3d06371f31 factor out some common storage utilities out of storage.cpp (#1515)
factor out some common storage utilities out of storage.cpp
2017-01-11 00:42:10 -05:00
arvidn 0c7e86078b merged RC_1_1 into master 2017-01-08 10:18:41 -05:00
Arvid Norberg 5d1fb97b14 fix torrent_status test (#1499)
fix torrent_status and tracker interval test
2017-01-08 09:51:01 -05:00
Arvid Norberg 57f52adc88 various cleanup (#1497)
* various cleanup

* fix

* cleanup
2017-01-06 01:39:01 -05:00
arvidn 7957e2a30e fix move_storage() to its own directory (would delete the files) 2017-01-03 21:09:26 -05:00
arvidn 41dbb47123 compact block_cache_reference by using storage_index_t instead of pointer. make sure storage object is kept alive by block_cache_references 2017-01-02 13:45:16 -05:00
arvidn a087a283de make tests print to stdout instead of stderr 2017-01-02 11:28:41 -05:00
arvidn 4ebc344e48 make disk_io_thread responsible for the storage object. torrents refer to it by index 2017-01-01 13:54:39 -05:00
arvidn 6cfcf45214 fix test output redirection on windows 2017-01-01 13:54:39 -05:00
arvidn 03aa3467f3 don't redirect stderr by default in unit tests (in case the sanitizers fire and print stuff) 2016-12-31 10:28:30 -05:00
arvidn 5a97af54db optimize chained buffer a bit and factor out nop into non_owning_handle 2016-12-29 07:05:18 -08:00
Arvid Norberg af126fe507 make buffer_allocator_interface an implementation detail of the disk_io_thread (#1463)
make buffer_allocator_interface an implementation detail of the disk_io_thread by using disk_buffer_holder in the disk interface. make chained_buffer use holders instead of free deleter functions and userdata to support putting disk_buffer_holder objects in there. Also make the session buffers be held by holders
2016-12-28 17:47:18 -08:00
Arvid Norberg f1e34dfbd5 remove long-standing deprecated filter_pieces functions (#1457)
remove long-standing deprecated filter_pieces functions
2016-12-27 12:42:23 -08:00
arvidn 5ed0086b51 removed mmap_cache feature 2016-12-25 21:12:49 -08:00
arvidn 3f612d7e99 cleaning up of left-overs from torrent eviction functionality 2016-12-23 06:06:59 -05:00
Pavel Pimenov 6afb1f3e83 aux::to_hex(sha1) -> sha1.to_hex() (#1418)
generate hex strings into std::string instead of stack-allocated char arrays
2016-12-22 10:44:36 -05:00
Arvid Norberg 3f1084d63d strengthened type safety in handling of piece and file indices (#1409)
strengthened type safety in handling of piece and file indices
2016-12-22 10:42:33 -05:00
arvidn cde9457fdb fix merge issue 2016-12-22 01:13:17 -05:00
Andrei Kurushin d62b980278 backport fix upnp xml_parse 2016-12-18 09:01:33 -05:00
Andrei Kurushin 10e3847b40 fix upnp (#1421)
* fix upnp xml_parser, and listen sockets remap
2016-12-17 17:50:03 -05:00
Alden Torres f382936d56 headers, end of file, code cleanup 2016-12-12 23:36:45 -05:00
Steven Siloti ca07ee83a3 mark all converstion to bool operators as explicit 2016-12-12 01:34:36 -05:00
Steven Siloti b9169609df support separate external ip for each interface (#1383)
support separate external ip for each interface
2016-12-04 15:58:51 -05:00
Arvid Norberg 54f052a97b allocation slot type (#1352)
use a specialized type for allocation slot indices
2016-11-26 03:09:01 -05:00
Arvid Norberg 15ab8f387b cleaning up of disk_interface and improving type safety (#1353)
cleaned up disk_interface and improved type safety. removed unused disk status code disk_check_aborted, and removed status code return value for async_hash
2016-11-26 01:51:47 -05:00
Arvid Norberg 5dd46ec4f4 Fix merge issue 2016-11-24 10:54:26 -05:00
arvidn b3c3c2aae6 merged RC_1_1 into master 2016-11-24 07:40:32 -05:00
arvidn f08501b869 update callback interface for async_check_files and async_flush_piece 2016-11-23 19:02:05 -05:00
Steven Siloti 64fed14ccc split tests and only use IPv4 addresses 2016-11-23 01:09:05 -05:00
Steven Siloti ae3a39fc05 disable test_listen_socket if we don't have ipv6 support
Do we even still need to support building without ipv6?
2016-11-23 01:09:05 -05:00
Steven Siloti 06c53a41d1 revisions based on code review
Moved the logic to determine which sockets to keep to a separate function and
add unit tests for it.

Store the port which was originally specified for a listen socket so that we
can match sockets reliably even with port retries.
2016-11-23 01:09:05 -05:00
Mokhtar Naamani f81e09fe05 update stack_allocator to support 0 size allocations 2016-11-21 20:17:15 -05:00
arvidn 0e33e62627 merged RC_1_1 into master 2016-11-20 11:18:16 -05:00
arvidn d5b76d2237 move block_cache_reference out of disk_io_job header 2016-11-20 10:34:42 -05:00
arvidn f83e16f0cc add unit test for stack allocator 2016-11-19 13:24:45 -05:00
arvidn 14236993ea collapse logic in piece_manager into storage directly 2016-11-13 02:53:16 -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 20aeed09e1 clean up tests 2016-11-12 17:39:34 -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 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
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 200b3c4965 add rename file test 2016-11-05 15:20:38 -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 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 d1a59879cb deprecate mmap_cache (#1269)
deprecated mmap_cache feature
2016-10-29 13:42:42 -04:00
arvidn cb5d116fb9 Merge branch 'RC_1_1' 2016-10-27 21:11:55 -04:00
arvidn 336030c73b update SSL certificate for test 2016-10-27 18:21:04 -04:00
arvidn 500bb24dba merged RC_1_1 into master 2016-10-26 23:30:58 -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
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 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
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
Arvid Norberg 6148984426 remove whitespace at end of line (#1245) 2016-10-22 11:47:24 -04:00
arvidn b1e22e6183 merged RC_1_1 into master 2016-10-20 00:36:54 -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 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 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
arvidn 6c805bd06d simplify print statements in tests 2016-10-09 20:23:45 -04:00
arvidn 9453fbd54b merged RC_1_1 into master 2016-10-09 20:09:44 -04:00
Arvid Norberg 6bb2d7c017 Sanitize 1.1 (#1197)
enable address sanitizer
2016-10-09 17:00:20 -04:00
Arvid Norberg 879d560f52 run cpplint.py on travis (#1200)
run cpplint.py on travis
2016-10-09 14:51:24 -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
Alden Torres 7f060e4a70 fix openssl compilation with boost 1.62 (#1193) 2016-10-08 01:12:15 -04:00
Pavel Pimenov 93d8955750 Fix #1182 (#1188)
Add webseed URL duplicate check
2016-10-07 15:36:40 -04:00
Alden Torres 9343f2fbfb minor header cleanup and refactor (#1179) 2016-10-04 07:43:34 -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
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 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
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 48a647a169 String view entry (#1147)
make entry support string_view in its interface, and make it efficient when in in C++14
2016-09-24 06:10:54 -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
Alden Torres 158ae3a4ba consts, minor refactor, typos and test (#1142) 2016-09-23 13:49:39 -07:00
Arvid Norberg 24b271b7c1 Merge pull request #1133 from ssiloti/peer-picker
fix DHT peer picking algorithm. The old code was always picking the first to_pick peers from the set.

* use a sorted vector to store peer announcments

Given the frequency of linear scans being done, std::set is clearly
sub-optimal for storing announced peers. A std::vector is the obvious
choice, which I also decided to make sorted. A sorted vector trades
better performance in announce_peer for slower purging, the latter
being mitigated by batching.

* shrink peers vectors with too much excess capacity
2016-09-23 13:48:00 -07:00
Steven Siloti 89942bf3d4 use a sorted vector to store peer announcments
Given the frequency of linear scans being done, std::set is clearly
sub-optimal for storing announced peers. A std::vector is the obvious
choice, which I also decided to make sorted. A sorted vector trades
better performance in announce_peer for slower purging, the latter
being mitigated by batching.
2016-09-22 21:54:10 -07:00
Alden Torres c7ec987a1b refactor in msg verify_message and minor cleanup (#1131) 2016-09-21 23:04:05 -07:00
Steven Siloti 23e11af899 fix peer picking algorithm
The old code was always picking the first to_pick peers from the set.
2016-09-21 20:21:34 -07:00
Steven Siloti c75b243490 remove redundant protocol parameter (#1128) 2016-09-21 20:00:39 -07:00
Arvid Norberg 770b0def0c Merge pull request #1122 from ssiloti/peers-storage-policy
new peers storage policy
2016-09-21 07:35:34 -07:00
Arvid Norberg 752ff24357 Merge pull request #1123 from aldenml/system-port-and-logs-1.2
* accept port 0 in listen_interfaces
* more session log and source code refactor
2016-09-20 23:50:49 -07:00
Arvid Norberg 3e7e806a77 deprecate old session_settings API (use settings_pack instead) (#1117)
deprecate old session_settings API (use settings_pack instead)
2016-09-20 23:49:23 -07:00
Steven Siloti dad0000015 send write token if peer is alraedy stored 2016-09-20 19:35:24 -07:00
Alden Torres 4f6ea4a70d more session log and source code refactor 2016-09-20 11:24:24 -04:00
Alden Torres 089d6c3144 accept port 0 in listen_interfaces 2016-09-20 11:11:24 -04:00
Steven Siloti e2fefb074a always drop the announcing peer when at capacity 2016-09-19 21:51:10 -07:00
Arvid Norberg acf77a5385 fix tail-padding for last file in create_torrent (#1106) 2016-09-18 20:08:27 -04:00
Alden Torres db14df5d0d dht code related refactor and cleanup (#1107)
dht code related refactor and cleanup
2016-09-18 20:08:15 -04:00
Arvid Norberg 80ba45e1fb clean up read_endpoint_list (#1102) 2016-09-18 10:12:54 -04:00
Arvid Norberg 219b2c36b4 upnp and natpmp modernization and cleanup (#1103)
upnp and natpmp modernization and cleanup
2016-09-18 10:11:56 -04:00
Arvid Norberg 527772420a fix tail padding in file_storage::optimize and improve file placement with some tests (#1105) 2016-09-18 00:24:20 -04:00
Alden Torres 6c31ea3d44 created dht state and session params refactor (#1100)
created dht state and session params refactor
2016-09-17 09:42:04 -04:00
Alden Torres d94c317f02 created portmap_callback and refactor for natpmp and upnp log optimization (#1096)
created portmap_callback and refactor for natpmp and upnp log optimization
2016-09-16 09:53:17 -04:00
Alden Torres 0507764d04 consts and refactor, hash_address returns the hash (#1093)
consts and refactor
2016-09-15 21:13:43 -04:00
Steven Siloti 3d3367387a check the address family of peers in get_peers (#1090) 2016-09-14 11:29:27 -04:00
Alden Torres 224ebc1ded peer_connection log related optimization (#1086)
peer_connection log related optimization and making m_alert_mask atomic
2016-09-13 17:07:22 -04:00
Alden Torres 65cdc15543 more on log, consts, refs and cleanup in dht related code (#1082)
more on log, consts, refs and cleanup in dht related code. moving print_state out of main source code
2016-09-13 08:18:47 -04:00
Alden Torres 4d4eb66c8b some refactor, more const refs and span use (#1078)
some refactor, more const refs and span use
2016-09-11 01:58:48 -04:00
Alden Torres 99da5c8017 dht log optimization, consts and refactor (#1073)
dht log optimization and refactor
2016-09-08 19:13:46 -04:00
Alden Torres 01e9810f7a more boost types cleanup and handling of deprecated macos libcrypto (#1072)
more boost types cleanup and handling of deprecated macos libcrypto. more granular TORRENT_MACOS_DEPRECATED_LIBCRYPTO
2016-09-07 17:51:18 -04:00
Alden Torres 4c53d7b2da refactor to use std unordered containers and minor cleanup (#1070) 2016-09-06 23:37:36 -04:00
Alden Torres 5e69dc700c minor cleanup and refactor (#1069) 2016-09-06 18:34:03 -04:00
Alden Torres 7a0da72813 use of std::unordered_multimap and fix in resolve_links::match (#1067)
use of std::unordered_multimap and fix in resolve_links::match
2016-09-06 13:04:28 -04:00
Arvid Norberg 994a84cfe8 enable string tests on appveyor (#1064) 2016-09-05 15:17:12 -04:00
Alden Torres 29a4075555 refactor to use std::shared_ptr with dht observer (#1057)
refactor to use std::shared_ptr with dht observer
2016-09-02 21:05:11 -04:00
Alden Torres fd4c09d7b2 refactor to use std::shared_ptr with traversal_algorithm (#1056)
refactor to use std::shared_ptr with traversal_algorithm. use a more stable linaro gcc link
2016-09-02 16:42:55 -04:00
Steven Siloti 29e6cbbdae fix exit condition when parsing nodes (#1046)
fix exit condition when parsing nodes
2016-09-01 00:49:21 -04:00
Alden Torres bf0008933a refactor to use std::shared_ptr with peer_connection, core and tests (#1050) 2016-08-31 21:42:18 -04:00
Alden Torres 6e891a0211 refactor to use std::shared_ptr with http_connection (#1049) 2016-08-31 12:45:45 -04:00
Alden Torres cdb15ba886 refactor to use std::shared_ptr with torrent (#1048) 2016-08-31 08:27:36 -04:00
Alden Torres e2487c4d24 more use of std::shared_ptr refactor 2016-08-30 10:10:53 -04:00
Alden Torres 2ac45d17ef ed25519 api refactor (#1041) 2016-08-30 02:37:51 -04:00
Alden Torres ebe53883b5 refactor in escape_string and escape_path to use string_view (#1039) 2016-08-29 22:37:19 -04:00
Alden Torres 32f5f8f257 better integration and API for ed25519 (#1037)
better integration and API for ed25519. using shared_ptr in ed25519_add_scalar
2016-08-29 20:28:42 -04:00
Alden Torres 227b630bd1 added string_ends_with to replace boost (#1034)
added string_ends_with to replace boost
2016-08-26 12:36:09 -04:00
Alden Torres 44d9f456f8 adding support for a more configurable sha512 hasher (#1028)
adding support for a more configurable sha512 hasher, digest32 template, using hasher512.
2016-08-25 19:07:16 -04:00
Alden Torres 73d6ba6ae3 using span in torrent_handle and no optional in torrent_info (#1023) 2016-08-22 11:02:51 -04:00
Arvid Norberg 3f693fde42 fix build (#1025)
fix build
2016-08-21 20:20:46 -04:00
arvidn 74fc0fae9d merged RC_1_1 into master 2016-08-21 16:28:49 -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
Alden Torres 00510d2b06 more use of span and std::shared_ptr (#1018)
more use of span and std::shared_ptr
2016-08-21 13:37:11 -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
Alden Torres 4d96939b7b minor cleanup and refactor (#1016)
minor cleanup and refactor
2016-08-20 19:46:55 -04:00
Arvid Norberg 8f7901dd25 build with warnings as errors in autotools build on travis (#1013)
build with warnings as errors in autotools build on travis
2016-08-19 01:05:43 -04:00
Alden Torres 9fd83aaa10 more use of std::shared_ptr (#1009)
more std::shared_ptr transition
2016-08-18 17:08:40 -04:00
Alden Torres 5789b02e1b storage_interface refactor to use span and references (#1007)
storage_interface refactor to use span and references
2016-08-18 11:57:50 -04:00
Alden Torres bb388563b3 refactor to use torrent_info with std::shared_ptr (#1006) 2016-08-17 17:26:35 -04:00
Alden Torres 7cee486cf7 extensions refactor to use span and std::shared_ptr (#1005)
extensions refactor to use span. use std::shared_ptr instead of boost::shared_ptr.
2016-08-17 14:30:24 -04:00
Alden Torres f4127ae12b refactor in crypto_plugin::decrypt to use tuple 2016-08-16 10:21:17 -04:00
Alden Torres 7a2b21407c refactor in crypto_plugin to use span 2016-08-15 23:09:30 -04:00
Alden Torres f51e782905 using string_view in node::incoming_request and plugin::on_dht_request (#1001)
use string_view in node::incoming_request. changed plugin::on_dht_request to use string_view
2016-08-15 16:17:13 -04:00
Alden Torres 2f7adfbb92 no more deprecated std::random_shuffle (#999)
replace deprecated std::random_shuffle. more aggressive random_shuffle in DHT simulation setup. use travis_retry.
2016-08-14 19:48:31 -04:00
arvidn 8c8c3d5587 replace boost::function with std::function 2016-08-13 07:07:26 -04:00
Arvid Norberg e36e5efaba use boost::string_ref (#996)
use boost::string_ref/boost::string_view in various parts of the code, in file_storage, some file functions and in bdecode.
2016-08-13 07:04:53 -04:00
Alden Torres 74c8054e8d created session_params and refactor (#993)
created session_params and new session constructor
2016-08-11 20:32:14 -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
arvidn 42b3fbe20a merged RC_1_1 into master 2016-08-07 17:23:40 -04:00
Alden Torres af565e2b86 added support for flz (find last zero) and copied bitfield functions from PR #565 (#986)
added support for flz (find last zero) and copied bitfield functions from PR #565
2016-08-07 16:21:08 -04:00
Arvid Norberg e9a7271aca add piece picker test for re-prioritizing downloading/writing/partial pieces (#989)
add piece picker test for re-prioritizing partial pieces and forward port steven's piece picker fix from RC_1_1
2016-08-07 16:05:20 -04:00
Arvid Norberg f144b64211 split up piece picker test (#988) 2016-08-06 13:49:23 -04:00
Arvid Norberg 71f5510d62 make the random function produce proper random distributions, based o… (#981)
make the random function produce proper random distributions, based on uniform_int_distribution of C++11. also clean up piece_picker's priority_range to return two results instead of taking pointers to out-parameters. fix recent pe-crypto regression exposed by this change
2016-08-06 13:18:48 -04:00
Alden Torres 7ea9e76b37 refactor for separation of clz software/hardware based (#985)
refactor for separation of clz software/hardware based
2016-08-05 15:51:37 -04:00
Arvid Norberg 5b230694e5 check autotools on travis (#973)
build and run tests with autotools on travis, and fix configure issues.
2016-08-02 00:46:15 -04:00
Alden Torres f795e88789 don't define _WIN32_WINNT if not under windows 2016-07-30 18:03:06 -04:00
Arvid Norberg c1ade2b75f Merge pull request #965 from arvidn/hex-span
use span for to_hex and from_hex functions
2016-07-29 22:25:15 -04:00
Alden Torres 55fc0704ae increase timeout in test_utp 2016-07-29 20:20:06 -04:00
arvidn 83dba91168 use span for to_hex and from_hex functions 2016-07-29 18:42:18 -04:00
Steven Siloti a414e4c3fa remove nodes which change their id
This is based on a suggestion from the8472 to prevent malicious nodes from
polluting the routing table.

https://github.com/the8472/mldht/blob/sanitizing-docs/docs/sanitizing-algorithms.rst
2016-07-27 21:10:33 -07:00
Alden Torres 98918d61f5 removed const_interval, mutable_buffer and const_buffer types (#956)
removed const_interval, mutable_buffer and const_buffer types
2016-07-27 22:31:08 -04:00
Steven Siloti 7a95ba636e add test for updating a dht node's id (#953) 2016-07-27 02:38:48 -04:00
Arvid Norberg 69f82c5274 add support for entry::preformatted to python binding (#952) 2016-07-27 00:15:26 -04:00
Alden Torres 7caa99d6f1 __cplusplus cleanup (#951)
cleanup
2016-07-26 18:30:19 -04:00
Arvid Norberg 634c2bce60 Span conversion (#944)
complete http_parser transition to use span. make xml_parse use span. remove buffer::interval. convert some of receive buffer management to use span<>
2016-07-26 02:15:31 -04:00
arvidn 680a09cfa5 merged RC_1_1 into master 2016-07-26 02:14:58 -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 2fae3ae835 fix regression in entry constructor (#950) 2016-07-26 01:08:03 -04:00
Arvid Norberg 6777ec5d05 back-ported dbghlp fix (#946)
back-ported dbghlp fix
2016-07-26 01:05:32 -04:00
Arvid Norberg 7fdab0d9e9 fix dbghlp heap corruption on windows
synchronize access to dbghlp.dll on windows
2016-07-25 08:05:26 -04:00
Arvid Norberg 4f803353cf transition part of http_parser to use span (#936)
transition parts of http_parser to use span
2016-07-24 00:52:20 -07:00
Arvid Norberg 9c2325ff6b modernize and improve type-safety of the DHT put implementation and test (#929)
modernize and improve type-safety of the DHT put implementation and tests. use unique_ptr instead of malloc for dht put items.
2016-07-23 15:57:04 -07:00
Alden Torres ddb274751f using span in crypto_plugin encrypt/decrypt (#934) 2016-07-23 15:54:39 -07:00
Alden Torres f57612b82d rename of aux::array_view to span (#933) 2016-07-22 09:31:42 -07:00
Arvid Norberg 7bf49c0a1c modernize hasher to use array_view (#931)
modernize hasher to use array_view as well as adding array_view support to entry
2016-07-22 07:29:39 -07:00
Arvid Norberg 3d74b8136e add test for mutable get with salt (#926) 2016-07-20 18:29:50 -07:00
arvidn b8bfc13d59 merge fix 2016-07-20 11:48:44 -07:00
arvidn e405f0e02f merged RC_1_1 into master 2016-07-20 11:34:29 -07:00
Arvid Norberg 12cb3cc60e refactor the DHT test (#921)
refactor the DHT test. enable some tests on windows
2016-07-20 07:53:33 -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 31fbbab89c clean up memory allocation in bitfield (#910)
clean up memory allocation in bitfield
2016-07-16 14:31:25 -07:00
Arvid Norberg e72f95e0d9 fix test_remap_files (#905)
fix test_remap_files
2016-07-15 14:35:57 -04:00
Arvid Norberg 8c03718117 apply modernization transforms to headers too. nullptr, explicit constructors, = default (#903) 2016-07-10 14:27:42 -04:00
Arvid Norberg a740a49fd6 modernize misc (#898)
modernize misc
2016-07-10 07:34:45 -04:00
Arvid Norberg eaea4a81cc modernize: remove redundant smart ptr get(), use fixed-width integer types (#900) 2016-07-10 07:31:58 -04:00
Arvid Norberg e801d2e6de modernize replace deprecated headers (#897) 2016-07-09 23:17:55 -04:00
Arvid Norberg e782783814 modernize use override (#895) 2016-07-09 20:10:38 -04:00
Arvid Norberg 770935cd46 modernize-use-nullptr (#894) 2016-07-09 16:26:26 -04:00
Arvid Norberg 52b934530e cleanup appveyor and .travis scripts (#890)
Cleanup appveyor and .travis scripts
2016-07-06 13:52:15 -04:00
arvidn 98af1cd54e merged RC_1_1 into master 2016-07-05 18:03:06 -04:00
Arvid Norberg eeb91cb803 Reduce appveyor builds 1.1 (#883)
reduce the number of times libtorrent is built on appveyor and travis
2016-07-05 11:25:31 -04:00
Arvid Norberg 33117ce5b2 extend link compatibility check to export-extra configurations (#876)
extend link compatibility check to export-extra configurations
2016-07-03 11:42:57 -04:00
arvidn 777a0838ce make test_recheck more robust 2016-07-02 22:32:35 -04:00
arvidn f0ef07a9c5 improve robustness of remap-gather test 2016-07-02 15:50:13 -04:00
Arvid Norberg 103d574cb0 build and run all tests in macOS (#859)
build and run all tests in macOS. fix test build invocation on travis. remove bdecode_benchmark
2016-07-02 00:41:48 -04:00
Arvid Norberg 1facf0eef6 clean-up more defines (#872)
clean-up more defines. remove TORRENT_DEBUG and TORRENT_DISABLE_INVARIANT_CHECKS (instead use TORRENT_USE_ASSERTS and TORRENT_USE_INVARIANT_CHECKS)
2016-07-01 19:46:59 -04:00
arvidn f5bb8c4b77 improve test robustness 2016-07-01 00:24:52 -04:00
Alden Torres 39e971c2ce added support for arm crc32c and changed to test in arm 32 bits (#869)
added support for arm crc32c and changed to test in arm 32 bits
2016-06-30 11:37:55 -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 f7515edc8b added neon support for popcount (#861)
added neon support for popcount
2016-06-27 18:51:43 -04:00
Arvid Norberg c567a66f5e simplify peer_connection's read handlers and the receive buffer. (#853)
simplify peer_connection's read handlers and the receive buffer. removed the concept of soft-packet-size. removed the secondary null-buffer receive path. removed try_read. simplify the buffer class to not be resizeable. make receive_buffer shrink the buffer allocation. add cap to growing the receive buffer. buffer sizes are always divisible by 8.
2016-06-26 20:41:03 -04:00
Alden Torres 57ad035955 added arm __builtin_clz support and tests running in arm mode (#854)
added arm __builtin_clz support and tests running in arm mode inside travis
2016-06-26 12:01:42 -04:00
Arvid Norberg eda956f13a use standard library for suspending threads (#855)
use standard library for suspending threads
2016-06-26 09:24:06 -04:00
arvidn be30bbd08b merged RC_1_1 into master 2016-06-25 17:48:13 -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
Arvid Norberg 21c1540ace clean up natpmp and upnp logging (#842)
clean up natpmp and upnp logging. remove custom logging macro and use regular logging via alerts. honor TORRENT_DISABLE_LOGGING
2016-06-23 01:23:59 -04:00
Arvid Norberg 6aabe3762b general modernization (#836)
general modernization. use nullptr instead of NULL, use std::tuple instead of boost::tuple, transition some unordered set/map from boost to std. some clean-up of includes
2016-06-20 11:32:06 -04:00
Arvid Norberg a9dbbdea37 use array_view instead of std::vector in crypto_plugin interface (#835)
use array_view instead of std::vector in crypto_plugin interface. return a vector of const_buffers for prepending new buffers. use stack allocated (single buffer) iovecs for receives. general cleanup
2016-06-19 23:05:59 -04:00
Arvid Norberg b2358666a1 remove lazy_bitfield (#817)
remove lazy_bitfield feature
2016-06-19 17:00:18 -04:00
Arvid Norberg 717ed8bd3b Msvc warnings (#822)
fix msvc warnings in python bindings and simulations
2016-06-18 19:24:27 -04:00
Arvid Norberg ed077c8358 use cstdint intead of boost/cstdint.hpp (#833)
use cstdint intead of boost/cstdint.hpp
2016-06-18 14:01:38 -04:00
Arvid Norberg ead11737b4 fix uses of defines for whether or not asserts are active (#832) 2016-06-18 08:31:07 -04:00
Alden Torres d3cd568447 plugin callback refactor (#823)
grouping plugins per feature
2016-06-17 22:02:21 -04:00
Alden Torres 2cc1054d7d deprecate functions in torrent_handle (#828)
deprecate get_full_peer_list on torrent_handle
2016-06-17 16:07:28 -04:00
Steven Siloti 2fed4103f8 scalable thread pool (#770) 2016-06-15 20:49:28 -04:00
Arvid Norberg ce161a9d62 remove option to disable contiguous receive buffers (#818)
removed option to disable contiguous receive buffers
2016-06-15 08:04:53 -04:00
arvidn db73946564 fix 2016-06-14 21:16:39 -04:00
arvidn 4b186130e6 fix merge 2016-06-14 21:16:28 -04:00
Arvid Norberg 4e0a4db9b4 fixed inverted priority of incoming piece suggestions (#809) 2016-06-12 20:36:05 -04:00
Arvid Norberg 590f68cd3d make parse_interface_list more robust and improve string tests (#806)
make parse_interface_list more robust and improve string tests
2016-06-12 02:00:10 -04:00
Arvid Norberg ef1a24518d fix dht tests (#803)
fix tests
2016-06-11 15:37:28 -04:00
arvidn dfc2206b9f merged RC_1_1 into master 2016-06-11 01:00:41 -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 404d72b9b7 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-10 01:14:37 -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 9d3cf5e68b changed min_distance_exp for correctness and clarity (#789)
changed min_distance_exp for correctness and clarity
2016-06-06 18:22:33 -04:00
Arvid Norberg 223f24ca27 some cleanup and transition to std::unique_ptr (#786)
some cleanup and transition to std::unique_ptr
2016-06-05 14:07:24 -04:00
arvidn edf9f8070d merged RC_1_1 into master 2016-06-04 14:09:19 -04:00
Alden Torres db65eb320a making dht counters additive (#783)
make dht counters additive to support both IPv4 and IPv6
2016-06-04 14:04:29 -04:00
Arvid Norberg fa8232cd13 remove some old cruft and defines (#785)
remove some old cruft and defines
2016-06-04 10:03:13 -04:00
Arvid Norberg 8c8f5bb03b deprecated public to_hex() and from_hex() functions (#784) 2016-06-04 10:01:43 -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
Alden Torres 7c4d92a627 Share the DHT storage for both IPv4 and IPv6 (#762) 2016-06-03 19:44:16 -04:00
Arvid Norberg 0583394af7 remove dependency on libtommath and use boost.multiprecision instead
remove dependency on libtommath and use boost.multiprecision instead
2016-05-30 14:33:24 -04:00
arvidn 7795b2ff6c merged RC_1_1 into master 2016-05-29 10:01:55 -07:00
Eugene Shalygin 9489eb23f4 Fix compilation with cmake (#767)
fix tests building with cmake. cmake: restore options parity with autotools
2016-05-29 12:58:16 -04:00
Arvid Norberg b3bbb2f0f6 upgrade libtommath to 1.0 (#765)
upgrade libtommath to 1.0
2016-05-28 17:12:26 -04:00
arvidn 420b5f51e6 merged RC_1_1 into master 2016-05-27 12:35:53 -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
Alden Torres 313006b8c7 Added support for x.pe parameter in parse_magnet_uri (#755) 2016-05-26 13:34:13 -04:00
Arvid Norberg d0a870b3dd produce valid bencoded strings for undefined/uninitialized entry objects (#756) 2016-05-26 03:33:05 -04:00
Arvid Norberg 96999ad67f replace uses of boost::bind with std::bind and lambdas (#745) 2016-05-25 00:31:52 -04:00
Arvid Norberg 748af6eec1 general cleanup. remove valgrind markup, log_hash_failures and C headers (#752)
general cleanup. remove valgrind markup, log_hash_failures and C headers
2016-05-23 08:15:39 -04:00
arvidn f1216686d2 merged RC_1_1 into master 2016-05-23 00:56:16 -04:00
Arvid Norberg 3106f6f8a5 restore debug-iterators to be enabled by default when building the tests (#751)
restore debug-iterators to be enabled by default when building the tests
2016-05-23 00:36:24 -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 3988a443ff add test of paused session 2016-05-22 02:20:49 -04:00
arvidn 836cd98d43 fix warning 2016-05-21 22:53:14 -04:00
arvidn aa0d29b67d merged RC_1_1 into master 2016-05-19 01:28:22 -04:00
Arvid Norberg 178a41b187 clean up natpmp logging infrastructure a bit as well as test_peer_list (#735)
clean up natpmp logging infrastructure a bit as well as test_peer_list
2016-05-18 01:54:37 -04:00
arvidn 8fac4e7d5c fix test build configuration 2016-05-18 01:52:39 -04:00
arvidn 23884f46b0 relax test_resume 2016-05-17 21:42:57 -04:00
Arvid Norberg eb72bbf2d2 fix add_torrent_impl when adding a URL (which has been deprecated) when building with deprecated features disabled (#733) 2016-05-17 16:49:11 -04:00
Arvid Norberg e8380e1d0b factor out includes from config.hpp into the files actually using it. primarily, printf family of functions, since C++11 version is used now. This removes the need for an snprintf-wrapper on windows (#732) 2016-05-17 09:24:06 -04:00
Arvid Norberg 87f07aaf1e test snprintf with mingw (#734) 2016-05-15 21:03:58 -04:00
Arvid Norberg 44a668db62 build with gcc/mingw on appveyor (#722)
enable gcc/mingw builds on appveyor. Some mingw tests crash currently, they need debugging and are currently disabled.
2016-05-15 13:28:22 -04:00
Arvid Norberg 1e7e01c671 transition to system_error as the exception type (#730)
transition to system_error as the exception type
2016-05-15 00:33:06 -04:00
Arvid Norberg 0d27a0acdd fix assert when adding an empty file (as a torrent) (#729) 2016-05-14 13:24:29 -04:00
arvidn c292696dcb back-port fix adding empty file as torrent 2016-05-14 13:13:20 -04:00
Arvid Norberg 6dcbeae8bb Async add torrent test (#728)
add test for async_add_torrent
2016-05-14 10:19:33 -04:00
Arvid Norberg 167cbe74b5 made alerts move-only and remove dispatch function and other deprecated alert functions requiring alert to be copyable (#721) 2016-05-13 08:19:44 -04:00
Andrei Kurushin 674641acce fix file_storage::m_paths memory reuse (#724)
fix file_storage::m_paths memory reuse after rename_file with path delimiter
2016-05-12 16:45:23 -04:00
Arvid Norberg a4beb287ee attempt fo fix msvc warning and built tests with warnings-as-errors (#710)
fix msvc warnings and built tests with warnings-as-errors
2016-05-08 09:58:13 -04:00
arvidn 6cf5ac9dd1 merged RC_1_1 into master 2016-05-06 01:08:05 -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
Arvid Norberg c6369194f0 simplify and optimize DHT routing table IP distance comparison (#696) 2016-05-03 23:22:25 -04:00
Arvid Norberg 077e9bb10c improve node-id operations (#693)
improve node-id operations, to operate on 32 bits at a time instead of 8. move out some code into sha1_hash.cpp, from the header file
2016-05-03 08:29:27 -04:00
Arvid Norberg c91a700c07 Msvc warnings (#685)
fix msvc warnings and build examples with warnings-as-errors
2016-05-02 12:36:21 -04:00
Alden Torres b85b501d92 Using address::is_multicast instead util function (#686) 2016-05-01 18:15:25 -04:00
Arvid Norberg 0d5428a664 minor refactoring to move-storage patch (#680)
minor refactoring to move-storage patch
2016-05-01 12:23:02 -04:00
arvidn 78bc269832 use std::chrono and not boost::chrono 2016-05-01 08:50:30 -04:00
Arvid Norberg 770afadcda use std::atomic instead of boost::atomic (#678)
use std::atomic instead of boost::atomic
2016-05-01 03:38:35 -04:00
Steven Siloti ff0675e64e use standard array container (#676) 2016-04-30 23:10:47 -04:00
Vladimir Golovnev 64cb8b236a Move storage "file-by-file" (#632)
When moving storage for a torrent, only move files belonging to the torrent, one by one.
2016-04-30 22:18:38 -04:00
Arvid Norberg 20b41ad0b9 Threads (#671)
use std::thread, std::mutex, std::condition_variable instead of pulling them in from boost.asio internals.
2016-04-30 18:54:23 -04:00
Arvid Norberg 4e97bf556c use override and final keywords (unconditionally) (#668)
use override and final keywords instead of macros.
2016-04-30 11:05:54 -04:00
Arvid Norberg f856b6bbe3 dial up cppcheck (#663)
increase cppcheck coverage and make sure there are no warnings
2016-04-30 00:24:45 -04:00
arvidn 05626e0b0f fix test rename_file 2016-04-29 23:57:26 -04:00
arvidn 36a5a11ee2 merge fix 2016-04-29 23:34:25 -04:00
Arvid Norberg 84a35f5265 clean up settings_pack (#665) 2016-04-29 12:01:33 -04:00
Arvid Norberg 95e348bef7 fix name clash with 'thread' on freebsd (#664) 2016-04-29 12:00:39 -04:00
Arvid Norberg d93bf9096d attempt to fix race condition in udp_tracker in test framework (#660) 2016-04-28 23:13:49 -04:00
Arvid Norberg c3e1e405b2 remove variadic template emulation for c++98, and introduce emplace_back to heterogeneous_queue as well, to avoid all moves of alert objects (#658) 2016-04-28 10:30:29 -04:00
Alden Torres d08bbbc0cc Added asserts related to total_size in create_torrent (#642) 2016-04-26 00:37:47 -04:00
Arvid Norberg 3c785b96fc Merge pull request #268 from ssiloti/dht-ipv6
Support DHT over IPv6
2016-04-25 19:19:48 -04:00
Andrei Kurushin 62eb956c54 fix x64 build with VS2015 UP2 compiler (#640)
fix VS2015 compiler warnings for: address-model=64, deprecated-functions=on, link=shared
2016-04-25 17:22:09 -04:00
Steven Siloti 2d9a6b76f1 use asio::protcol instead of an enum/bool 2016-04-24 15:18:47 -07:00
Steven Siloti 43be11177b Add dual stack DHT node simulation tests 2016-04-24 14:26:57 -07:00
Steven Siloti 2abd9867ce IPv6 DHT support
Fixes #110
2016-04-24 14:26:57 -07:00
Steven Siloti 356d2506bd extend dht_observer to support IPv6 external addresses 2016-04-24 14:26:57 -07:00
arvidn dec093dc1a Merge branch 'RC_1_1' 2016-04-24 15:41:28 -04:00
Arvid Norberg 7251575d98 This patch does: (#633)
1. simplifies and regularizies creation of listen sockets based on the listen
   interfaces setting.
2. simplifies and improves the behavior of UDP sockets, which are now explicitly
   opened per listen interface
3. transitions udp tracker, DHT and uTP socket manager over to using the new
   udp sockets
4. greatly simplified udp_socket to only wrap a single underlying socket (as
   opposed to one IPv4 and IPv6 socket)
5. improved behavior of bind-to-device
6. introduce an array_view type to make udp packet passing code simpler
7. simplify and make setting of DF flag more robust
8. simplify and regularize port mapping of listen sockets
2016-04-24 15:26:28 -04:00
Alden Torres 6171c911a0 Added assert for total_size in create_torrent (#636) 2016-04-22 13:51:06 -04:00
arvidn 04a3c04075 merged RC_1_1 into master 2016-04-20 08:08:05 -04:00
Arvid Norberg 2bd8622f4b fix missing EXPORT annotation of functions in the test utility library (#631) 2016-04-20 07:51:25 -04:00
Andrei Kurushin c41ab094be fix release build with VS2015 UP2 compiler warnings for: examples, test, tools (#627)
fix release build with VS2015 UP2 compiler warnings for: examples, test, tools
2016-04-20 00:45:32 -04:00
arvidn d17ae19391 Merge branch 'RC_1_1' 2016-04-11 02:08:06 -04:00
arvidn 2921caf95e fix msvc test build. make test framework robust to tmpfile() failing. add missing files and tests to makefile 2016-04-10 20:46:51 -04:00
arvidn 5ebb7d203b Makefile fix 2016-04-10 15:10:29 -04:00
arvidn 08edf43b3f fix to documentation generation to exclude private functions. fix makefile errors 2016-04-09 00:33:26 -04:00
arvidn 867b83ccda merged RC_1_1 into master 2016-04-08 02:20:24 -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 f662d86458 fix merge issue in test_storage.cpp 2016-03-30 02:06:10 -04:00
arvidn fd4a46342f merge RC_1_1 into master 2016-03-30 00:33:29 -04:00
Arvid Norberg a5af3b0dc5 Merge pull request #563 from arvidn/no-compact-1.1
remove remaining references to storage_mode_compact
2016-03-20 23:20:19 -04:00
arvidn b16f43132b Merge branch 'RC_1_1' 2016-03-20 20:39:49 -04:00
Arvid Norberg ee2d7a039d Merge pull request #562 from arvidn/coalesce-reads-1.1
make coalesce reads and coalesce writes actually work
2016-03-20 20:25:51 -04:00
arvidn f5c112eefc remove remaining references to storage_mode_compact (since it's been deprecated for quite a while now, and no longer implemented) 2016-03-20 18:25:24 -04:00
arvidn 2dd28c1708 just use malloc/free in test_storage (instead of page_aligned_allocator). file no longer requires alignment 2016-03-20 17:00:49 -04:00
arvidn 0095aa084f make coalesce reads and coalesce writes actually work 2016-03-20 16:34:19 -04:00
arvidn 96e2693d13 merge RC_1_1 into master 2016-03-19 16:02:46 -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
Arvid Norberg 50f7c88cee Merge pull request #554 from arvidn/tracker-next-test-1.1
convert tracker try-next test to be a simulation (and deterministic)
2016-03-18 19:49:18 -04:00
arvidn d3df16cd12 convert tracker try-next test to be a simulation (and deterministic) 2016-03-18 14:38:45 -04:00
arvidn 3c98868f6c deprecate explicit cache feature 2016-03-18 12:15:03 -04:00
arvidn ff44af2854 fix test_torrent on windows 2016-03-17 08:18:29 -04:00
arvidn f79a9c7adf merged RC_1_1 into master 2016-03-16 19:59:53 -04:00