Commit Graph

7349 Commits

Author SHA1 Message Date
arvidn 6d441da9e5 fix warning comparing integers of different width 2019-11-14 11:55:14 +01:00
arvidn 592544f30f fix some PVS studio warnings 2019-11-07 16:38:08 +00:00
Steven Siloti b26629885b fix storing udp port mappings in listen_socket_t 2019-10-23 15:50:37 +02:00
arvidn 729102c280 fixed division by zero in anti-leech choker 2019-10-20 12:59:55 +02:00
arvidn 39e2e4d3dc fix torrent_info::swap 2019-10-18 13:38:39 +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 961417814b WIP: fix to be less likely to hammer web seeds 2019-09-12 16:57:07 +02:00
arvidn 7a27a0430b improve peer logging a bit more. specifically around merging requests, sending merged requests and connecting web seeds 2019-09-10 12:23:36 +02:00
arvidn 77be259938 improve peer logging 2019-09-08 19:02:09 +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 d5b56ca187 capture return value from placement new, to explicitly make the pointer point to the new object 2019-08-28 23:58:25 +02:00
arvidn baeb959054 bump version to 1.2.2 2019-08-23 13:39:22 +02:00
arvidn e8543ecf54 remove empty statements and fix integral promotion warning 2019-08-20 14:36:03 +02:00
arvidn af5fe587c0 fix regression in left= reporting to trackers when adding a seeding torrent 2019-08-19 13:49:25 +02:00
arvidn b97ac317f6 improved peer_conn fuzzer 2019-08-17 22:16:38 +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
arvidn ffd4b39b09 improve hack in file_storage::symlink 2019-08-13 21:30:23 +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
Andrei Kurushin d4ddc416b3 backport RC_1_2: unban 51.x.x.x from dht darknet list 2019-08-02 08:01:34 -07:00
Arvid Norberg e539846266 fix integer overflow in chunked http parser 2019-07-30 11:16:05 -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
arvidn c9f953f487 saturate failed-bytes and redundant-bytes counters in torrent object, rather than asserting on overflow. This happens in the fuzzer, which keeps a torrent open for the entire run, causing it to max out redundant bytes 2019-07-29 21:53:16 -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 929f727a6a fix dht_stats_alert routing table stats for multi-homed clients (temporary hack for 1.2.x series) 2019-07-27 07:18:24 -07:00
arvidn 71c980957c fix entry assignment from bdecode_node and lazy_entry 2019-07-21 06:22:11 -07:00
arvidn 057c6684f2 fix use-after-free issue in socket_type 2019-07-21 05:40:18 -07:00
arvidn 178093f81b fix error code messages when building without deprecated functions 2019-07-21 05:39:53 -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
Amir Abrams 7d00e80a7a Trivial, correct school spelling in comments 2019-07-14 11:42:07 -04:00
Amir Abrams 8420f01eb4 Correct log verbiage for put_item 2019-07-14 11:42:07 -04: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 9da041a24d extend the whole_pieces_threshold setting to also request contiguous pieces from fast peers 2019-07-02 10:32:27 +02:00
Arvid Norberg 6fbeb93d50 fix error handling of moving storage to a drive letter that isn't mounted 2019-07-01 15:27:37 +02:00
patch3proxyheaders915360 832857e384 set HTTP Host to request-target when using proxy
To make the Host field carry the request-target it is enough to set
the Host information before changing the connection destination.

Many proxies rely on the Host field-value to route requests
in a violation of RFC7230 section 5.4.

https://tools.ietf.org/html/rfc7230#section-5.4

A request with the Host field set to the proxy hostname and port
in place of the request-target produces error responses and otherwise
confuses such misconfigured middleboxes.
2019-07-01 10:17:20 +02:00
Monson Shao 186371f1a2 choke dishonest peer in anti-leech seeding algorithm (#3833)
support peers not sending redundant HAVE messages in anti-leech seeding algorithm
2019-06-10 08:53:16 +02:00
arvidn f9d31cf71b fix GCC-9 warnings 2019-06-02 20:58:58 +02:00
Arvid Norberg 16acd9ebe1 don't leak exceptions out of handler callbacks in resolver 2019-05-19 08:00:50 +02:00
arvidn 7d1afa9b41 fix assert in DHT node 2019-04-30 12:50:05 +02:00
arvidn d97e1be6b2 bump version of RC_1_2 to 1.2.1 2019-04-28 03:31:04 +02:00
arvidn b21eebbad7 minor simplification of power-of-2 test in create_torrent 2019-04-27 17:17:56 +02:00
arvidn ce52d9c685 remove left-over, rendant, encoding of the info-dict in create_torrent::generate() 2019-04-26 22:02:23 +02:00