Changelog 2.1.1
- fix merkle tree issue
- require webtorrent RTC offer IDs to be exactly 20 bytes
- fix point-to-point interfaces without a route to the internet being used for outgoing traffic
- apply IP filter to DHT node
- fix use of a stack buffer past its lifetime when sending i2p SAM commands
- optimize RC4
- fail validation of DHT mutable items whose salt exceeds the 64 byte limit
- improve dont-count-slow-torrents
- improve performance of checking files
- add ip_ban_alert for IPs banned internally by libtorrent
- fix peer DSCP marking on outgoing TCP connections
What's Changed
- fix: validate peer-supplied endpoints against local addresses (SSRF) by @acts-1631 in #8530
- persist BEP-21 upload_only on peer_list entry (RC_2_0) by @reardonia in #8557
- Optimize CPU usage in the DH key exchange hot path by @anthonyryan1 in #8565
- attempt to fix an invariant check failure by @arvidn in #8572
- back-port want_peers_finished() invariant check failure by @arvidn in #8575
- cache the results of enumerating ip interfaces by @arvidn in #8567
- don't install vendored headers by @arvidn in #8573
- fix mistake in workflows syntax by @arvidn in #8577
- set NO_EXAMPLES=ON for bundled libdatachannel by @trim21 in #8576
- Test merge by @arvidn in #8580
- restore UPnP host validation to reject loopback by @arvidn in #8578
- address flaky python test by @arvidn in #8581
- experiment with bencher integration by @arvidn in #8582
- disable clang-format for certain parts of settings by @arvidn in #8584
- improve ABI compatibility in the C binding by @arvidn in #8589
- fix formatting of libtorrent_alert.h by @arvidn in #8591
- fix consistency between hash_value() and operator==() by @arvidn in #8590
- add benchmark for RC4 crypto by @arvidn in #8592
- handle ReadFile() returning a short read, by retrying by @arvidn in #8597
- Test merge by @arvidn in #8599
- Fix missing includes by @georgthegreat in #8594
- fix destruction order of m_fence_flush and m_file_pool in pread_disk_io by @arvidn in #8601
- merge reads into whole pieces when checking files by @arvidn in #8598
- address flaky test; test_priority by @arvidn in #8602
- fix undefined std::toupper on signed char in base32decode by @isl-Ramzi in #8600
- bencher benchmark by @arvidn in #8605
- abort trackers by @arvidn in #8603
- Abort trackers 2.0 by @arvidn in #8604
- add piece_picker benchmarks to bencher by @arvidn in #8608
- fix out of bounds read in from_hex on odd number of digits by @isl-Ramzi in #8611
- fix python binding for renamed files in resume data by @arvidn in #8610
- fix external_ip_alert not being posted when UPnP/NAT-PMP succeeds by @rts-kotori in #8607
- Test merge by @arvidn in #8614
- tracker_manager by @arvidn in #8613
- improve dont-count-slow-torrents by @arvidn in #8612
- inactive torrent fix, back-port by @arvidn in #8617
- don't report a utf8 sequence length longer than the input by @isl-Ramzi in #8618
- fix torrent updates for idle torrents by @arvidn in #8620
- bump versions of github actions by @arvidn in #8619
- Glassez fix resume tracker tiers by @arvidn in #8624
- fix stack buffer overflow in dht canonical_string on large salt by @isl-Ramzi in #8606
- Fix empty tracker tiers are incorrectly saved by @arvidn in #8625
- factor out fragile logic to track active, seeding and finished time by @arvidn in #8623
- fix out of bounds write in hashes_rejected on block hash requests by @isl-Ramzi in #8630
- Test merge by @arvidn in #8632
- check ABI changes for PRs by @arvidn in #8627
- optimize RC4 implementation by @arvidn in #8631
- Add alert for internally banned IPs by @101Dude in #8574
- reject all-zero node hashes in merkle_validate_and_insert_proofs by @isl-Ramzi in #8635
- don't hand a stack buffer to async_write in i2p_stream by @isl-Ramzi in #8634
- fuzzer for hash_picker by @arvidn in #8638
- improve abidiff's supressions file by @arvidn in #8640
- fix Python stub CI by @arvidn in #8639
- back-port: don't hand a stack buffer to async_write in i2p_stream by @arvidn in #8641
- reject out-of-range numbers instead of truncating them with atoi by @isl-Ramzi in #8621
- address some debug-only string handling issues by @arvidn in #8643
- fix test build with dht=off by @arvidn in #8646
- apply IP filter to DHT traffic by @arvidn in #8645
- fix setup_transfer to capture all fields of add_torrent_params by @arvidn in #8651
- add benchmark for ip_filter by @arvidn in #8648
- Test speedups by @arvidn in #8655
- Speedup tests2 by @arvidn in #8656
- fix DSCP marking on outgoing TCP peers by @jiaming-shi in #8652
- Cmake install tarball by @arvidn in #8659
- Fix wrapped packet buffer range checks by @M-Hassan-Raza in #8658
- configure thresholds for bencher results by @arvidn in #8662
- back-port Fix wrapped packet buffer range checks by @arvidn in #8661
- snprintf() can return -1 by @arvidn in #8665
- fixup IP filter being applied to the DHT by @arvidn in #8666
- make test_priority less flaky by @arvidn in #8669
- Fix Fast Extension piece validation after metadata by @M-Hassan-Raza in #8664
- cleanup is_in_range() by @arvidn in #8667
- update SECURITY.md by @arvidn in #8671
- hoist the alloca call out of the loop, to avoid risking stack overflow by @arvidn in #8674
- check the chunk size before adding it to m_chunk_pos by @arvidn in #8670
- back-port web seed chunk size check by @arvidn in #8672
- fix point-to-point interfaces by @arvidn in #8657
- fix GCC format string warnings by @arvidn in #8673
- disable legacy TLS versions by @arvidn in #8679
- ignore vendored libraries in CodeQL scan by @arvidn in #8678
- cleanup inconsistency in websocket_tracker_connection::fail by @arvidn in #8681
- use libcrypto's bignum in DH key exchange by @arvidn in #8660
- bump 2.0.14 version by @arvidn in #8684
- Test merge by @arvidn in #8686
- require webtorrent RTC offer IDs to be exactly 20 bytes by @arvidn in #8685
- fix piece-picker invariant by @arvidn in #8691
- fix webtorrent tracker announces to post response handlers reliably by @arvidn in #8688
- build with newer versions of C++ in CI by @arvidn in #8693
- Sanitize settings by @arvidn in #8695
- fix codeql workflow file by @arvidn in #8696
- cache Montgomery context for DH key exchange by @Tansien in #8694
- add bencher benchmark for merkle tree by @arvidn in #8697
- Bound WebSocket RTC offers by @acts-1631 in #8677
- another attempt at fixing codeql by @arvidn in #8699
- fix connection_tester by @arvidn in #8700
- optimize some merkle tree functions by @arvidn in #8704
- don't indent namespaces by @arvidn in #8710
- back port of merkle tree fix by @arvidn in #8711
- fix merkle tree issue by @arvidn in #8705
- Test merge by @arvidn in #8712
- simplify classic for-loops to range-for loops by @arvidn in #8713
- we can't use real threads in simulations by @arvidn in #8715
- Fix short writes in copy file fallbacks by @M-Hassan-Raza in #8716
- bump version to 2.1.1 by @arvidn in #8717
New Contributors
- @anthonyryan1 made their first contribution in #8565
- @georgthegreat made their first contribution in #8594
- @isl-Ramzi made their first contribution in #8600
- @rts-kotori made their first contribution in #8607
- @101Dude made their first contribution in #8574
- @jiaming-shi made their first contribution in #8652
- @Tansien made their first contribution in #8694
Full Changelog: v2.1.0...v2.1.1