Commit Graph

4566 Commits

Author SHA1 Message Date
arvidn d607328b45 fix announce_to_all_trackers and announce_to_all_tiers behavior 2020-02-05 11:19:15 +01:00
arvidn 86183358e9 bump version to 1.2.4 2020-02-05 01:55:44 +01:00
arvidn bdee0b563c fix suggest_read_cache setting 2020-02-02 20:16:59 +01:00
arvidn 07191dc5ad when generating documentation, don't only highlight function names but also data members and constants 2020-02-02 16:09:28 +01:00
arvidn bf22f56d74 order static and constexpr consistently 2020-02-01 15:18:03 +01:00
arvidn bc6444a251 lower TCP keepalive timeout for SOCKS5 UDP tunnel, to detect network failures and retry 2020-02-01 11:43:51 +01:00
Chocobo1 6a88ffc585 update BEP links to www.bittorrent.org domain
This is because previously the links to bittorrent.org will redirect to
another website and then returns http 404 not found.
Also related: https://github.com/bittorrent/bittorrent.org/issues/99
2020-01-26 11:46:16 +01:00
Chocobo1 45a4da4fe6 use https 2020-01-26 11:46:16 +01:00
arvidn 8013216550 document multi-homed support 2020-01-23 00:17:54 +01:00
arvidn 208d71ba77 support source-hint from routing table, where supported 2020-01-22 15:50:33 +01:00
arvidn bc0274ed6a limit the number of DHT nodes to run 2020-01-21 12:04:22 +01:00
arvidn 2c8cf4834b simplify the local service discovery logic to only deal with a single network. Instantiate LSD once per listen_socket_t instead of just once 2020-01-20 22:14:21 +01:00
Alden Torres 819eea722b backport of warning related fixes 2020-01-20 14:29:31 +01:00
arvidn 7529d3e67e remove now unused, in_local_network() functions 2020-01-20 14:27:16 +01:00
arvidn b5ea5bb82c move upnp mapper to have one per listen_socket_t. simplify the upnp logic to only deal with a single network. 2020-01-20 14:27:16 +01:00
arvidn b8726bd4f6 refactor discover_device() away from upnp 2020-01-20 14:27:16 +01:00
arvidn f5ebd4e354 simplify natpmp by requiring it to be tied to a specific network, and use get_gateway() and remove unused get_default_route() functions 2020-01-20 01:24:22 +01:00
arvidn a53d3a8746 factor out get_gateway function and add unit tests. IPv6 gateways are not addressed in the same network, so we can't use match_addr_mask(). Assume all local IPv6 addresses do not have a gateway 2020-01-19 08:27:33 +01:00
arvidn 571952fd19 bind SOCKS5 connection to correct outgoing interface 2020-01-19 08:27:33 +01:00
arvidn 8be7ab559a remove outgoing udp sockets and replace with listen_socket_t 2020-01-19 08:27:33 +01:00
arvidn 4ceb2ea467 limit tracker announces and SOCKS5 connection attempts to listen_socket_t that actually can reach the target 2020-01-19 08:27:33 +01:00
arvidn d13109426a fix test_lsd to pass reliably 2020-01-18 03:20:20 +01:00
arvidn df85b31490 deprecate and remvoe broadcast_lsd setting 2020-01-16 16:02:00 +01:00
arvidn fa79697f45 deprecate (and remove) upnp_ignore_nonrouters setting 2020-01-16 10:35:50 +01:00
arvidn bd43c9b83f remove unused overload of set_external_address 2020-01-15 19:53:52 +01:00
arvidn 659a78eb56 improve test_upnp by responding with a unicast message 2020-01-15 08:03:33 +01:00
arvidn e18366bb6b make sure &key= stays consistent between different source IPs (as mandated by BEP7) 2020-01-11 11:37:54 +01:00
arvidn 7320568c3c minor cleanup of debug logging for peer_list 2020-01-11 11:22:30 +01:00
arvidn 2e15b3edfa use span in expand_unspecified_address 2020-01-08 10:24:54 +01:00
arvidn 96695fa714 fix build_netmask to treat the count as a prefix and add tests 2020-01-06 20:23:13 +01:00
arvidn af3d084092 convert the duplex enum into a flags field, on listen_socket_t and listen_endpoint 2020-01-06 20:22:55 +01:00
arvidn 3569b8885e fix null termination of description and friendly_name in ip_interface on linux 2020-01-05 18:38:04 +01:00
Pavel Pimenov c7c7cd41d2 remove m_inode 2020-01-04 23:03:46 +01:00
arvidn 55e83e40d2 suppress future attempts to announce to a tracker from an interface with an incompatible address family 2020-01-04 23:03:17 +01:00
Arvid Norberg 0675bd263f add new socks5_alert to trouble shoot SOCKS5 proxies 2019-12-28 17:57:44 +01:00
Arvid Norberg f0c3eb8915 docs improvement 2019-12-20 22:08:54 +01:00
arvidn 078f7b956e fix parsing of enum classes in doc generation tool 2019-12-19 15:40:45 +01:00
Arvid Norberg 55460a60bc fix the documentation generation tool to work for flags, and other global constants. Improve documentation 2019-12-19 01:50:22 +01:00
arvidn 68196dceae fix erroneous event=completed tracker announce when checking files 2019-12-15 11:21:46 +01:00
arvidn 828ad7d024 bump version 1.2.3.0 2019-12-09 12:46:36 +01:00
arvidn 59a29a44e2 promote errors in parsing listen_interfaces to post listen_failed_alert 2019-12-09 06:54:31 +01:00
arvidn 88af8789a7 fix typos 2019-12-05 00:43:44 +01:00
arvidn b5790b982b fix issue of rapid calls to file_priority() clobbering each other 2019-12-04 22:04:13 +01:00
arvidn 11014b7efc update list of clients to be more.. modern. Hide alert constructors 2019-12-02 23:24:59 +01:00
arvidn 7b0bb2fb0b fix accidental disabling of exporting aux::proxy_settings from library 2019-12-02 11:43:46 +01:00
arvidn d0f5f08665 fix typos and extend spell checking 2019-11-30 01:33:40 +01:00
arvidn b108b1d044 clarify documentation around torrent_handle::have_piece() and piece_finished_alert 2019-11-29 08:47:32 +01:00
arvidn 78aefcc806 fix deprecation warnings for deprecated classes 2019-11-27 12:15:59 +01:00
arvidn 0c2d3a0dac optimize setting with unlimited unchoke slots 2019-11-26 20:54:52 +01:00
arvidn 97a79d2dba fixed restoring of trackers, comment, creation date and created-by in resume data 2019-11-25 14:21:55 +01:00
arvidn a53d090313 fix handling of torrents with too large pieces 2019-11-25 02:46:55 +01:00
Arvid Norberg 76f53297a9 update appveyor image and boost version. explicitly use python2 for test scripts (as the SSL behavior has changed in python 3 in non-trivial ways) 2019-11-19 01:46:39 +01:00
Arvid Norberg 48fa5343b5 add executor_type to socket_type 2019-11-14 11:55:48 +01:00
arvidn e5ba4fa640 fix documentation for add_port_mapping 2019-11-13 15:40:04 +01:00
arvidn 592544f30f fix some PVS studio warnings 2019-11-07 16:38:08 +00:00
arvidn 47dede4f7e back-port missing include for GCC 10 2019-10-30 15:02:44 +01:00
arvidn 28a627a3a3 fix settings default value doc generation. Apply documentation fix from Sig7 2019-10-20 21:59:03 +02:00
arvidn 4b8f8d7e92 honor proper object lifetime rules 2019-09-28 22:11:54 +02:00
arvidn d08fa164d2 fix issue where pieces would be hashed despite disable_hash_checks was set 2019-09-13 22:38:18 +02:00
arvidn d1e0e8701b documentation improvements 2019-09-13 14:31:20 +02:00
arvidn 961417814b WIP: fix to be less likely to hammer web seeds 2019-09-12 16:57:07 +02:00
arvidn 7878f68370 add some missing documentation. undeprecate error_file_metadata ahead of master undeprecating it 2019-09-08 10:51:46 +02:00
arvidn 9b1607a63c fix updating of is_finished torrent status, when changing piece priorities 2019-09-07 10:45:25 +02:00
arvidn a3440e54bb make aux::session_settings thread-safe. this allows all threads to share the same settings object, which has low contention and is rarely updated 2019-09-01 03:41:36 +02:00
arvidn c0c4c2083a avoid comparing unrelated pointer in the DHT routing table (which is UB) 2019-08-31 12:54:00 +02:00
arvidn baeb959054 bump version to 1.2.2 2019-08-23 13:39:22 +02:00
arvidn b2c3b4dbf8 add spaces around user defined literal suffix operators 2019-08-21 14:23:46 +02:00
arvidn 07ab3b9739 add feature to create an affinity to pick adjecent pieces aligned to 4MiB extents. It's an attempt to improve disk I/O, by writing larger contiguous ranges of bytes. It's off by default. 2019-08-17 12:32:47 +02:00
Arvid Norberg ff113a262c make it a bit more likely to split the last bucket in the DHT routing table 2019-08-12 15:08:49 -07:00
Arvid Norberg bfe0e1f27d hide some internal functions. error if namespaces are preceded by whitespace (as the docs generation script requires them to start at the beginning of the line) 2019-08-07 20:48:26 -07:00
Arvid Norberg 03ffc04e39 back port fixing GCC warnings 2019-08-02 06:21:07 -07:00
arvidn b1b03a0d77 factor out and unit test parts of the DHT routing table logic that handles the affinity of nodes to insert. Specifically, make sure the even distribution within routing table buckets works correctly 2019-07-30 07:56:18 -07:00
Arvid Norberg c5d0ea6332 make node and tracker_node explicitly non-movable, since the node contains a non-movable std::mutex 2019-07-29 23:15:09 -07:00
arvidn 8e23f9cc92 improve file_storage::sanitize_symlinks 2019-07-29 06:10:04 -07:00
arvidn 3995ffeafd similar to how low RTT DHT nodes are preferred over high RTT nodes, also have an affinity for nodes with node IDs derived from their IP 2019-07-28 16:13:16 -07:00
arvidn ca27892111 avoid empty dht routing table buckets 2019-07-27 07:18:24 -07:00
arvidn 08a399306c fix simulator build with new version of boost 2019-07-20 20:58:45 -07:00
Arvid Norberg 196588c7b8 add torrent_info constructor overloads to control torrent file limits 2019-07-20 18:14:19 -07:00
arvidn 7a20850632 feature to disable DHT, PEX and LSD per torrent 2019-07-20 10:20:41 -07:00
arvidn bcb26fd638 fix seeding of random number generator on mingw 2019-07-04 19:56:18 +02:00
Arvid Norberg d113816ae6 fix issue where trackers from magnet links were not included in create_torrent() 2019-07-04 12:53:36 +02:00
arvidn f9d31cf71b fix GCC-9 warnings 2019-06-02 20:58:58 +02:00
Chocobo1 d53caf51ab Replace unicode symbol by ascii
MSVC was emitting warning C4819 before this commit.
2019-05-31 16:06:45 +02:00
Arvid Norberg 16acd9ebe1 don't leak exceptions out of handler callbacks in resolver 2019-05-19 08:00:50 +02:00
Arvid Norberg 41a5940100 ensure headers build independently 2019-05-13 11:56:03 -07:00
Arvid Norberg 7062a4f89e fix unit template's mutating operators to give them proper ref qualifiers 2019-05-07 21:51:49 -06:00
Alden Torres 02c9e2f7ff fix unused-parameter warning with boost 1.70.0 2019-05-06 05:50:33 -06:00
arvidn d97e1be6b2 bump version of RC_1_2 to 1.2.1 2019-04-28 03:31:04 +02:00
Steven Siloti aec5c50282 Track the mapped port for each NAT mapping transport (#3793)
* Track the mapped port for each NAT mapping transport
Each transport needs to be tracked separately so that a failed mapping request
doesn't cause the listen port for a socket to be cleared to zero.
* add template specialization to allow enums as indexes
* use aux::array for port mappings
2019-04-22 01:50:44 +02:00
Fabrice Fontaine 039cc4809e buffer.hpp: fix build on uclibc
malloc_usable_size is not available on uclibc

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2019-04-21 00:46:54 +02:00
Arvid Norberg 76c2794923
fix build with boost-1.70 (#3788)
fix build with boost 1.70.0 Fix #3683
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2019-04-19 20:56:19 +02:00
arvidn 8506f93507 fix more warnings 2019-04-11 18:18:11 +02:00
arvidn a845afe6d9 fix warnings 2019-04-10 08:05:36 +02:00
arvidn 4441655bab optimize resolve_duplicate_filenames_slow() 2019-04-09 01:59:34 +02:00
arvidn 102387f4a8 make all tests run cleanly with leak sanitizer 2019-03-27 17:10:36 +01:00
Steven Siloti 4dc2e6015d use flag to prevent multiple calls to abort_jobs even when asserts are disabled 2019-03-26 18:04:18 +01:00
arvidn 64600f444b improve sanitizer rule in Jamfile. Some fixes for new clang sanitizr 'implicit-conversion' 2019-03-26 10:14:06 +01:00
Arvid Norberg 3a4a7b742a deduplicate code implementing log2p1() 2019-03-23 22:44:32 +01:00
arvidn 20cb26fcc1 remove duplicate copy of escape_string 2019-03-23 20:30:40 +01:00
Arvid Norberg 19dbfce9c0 simplify and clean up the handling of name in internal_file_entry. move should be more efficient now, by not copying the name 2019-03-22 21:31:32 +01:00