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