Changelog
- add missing python binding for filenames class
- fix edge case in filename deduplication
- fix web seed coalesced requests for v2 torrents
- fix pre-allocation after enabling files with pread disk I/O
- fix race between stop torrent and hasher threads in pread_storage
- prevent pread disk I/O from overwriting files when renaming
- fix file priority updates being lost when issued in quick succession
- deprecate internal functions of file_storage
- optimize loading torrents
- fix mis-attribution of tracker source when loading a torrent file
- fix race between async_hash() and force_recheck()
What's Changed
- piece_picker generation by @arvidn in https://github.com/arvidn/libtorrent/pull/8732
- fix signed overflow computing bitfield sizes in read_resume_data by @isl-Ramzi in https://github.com/arvidn/libtorrent/pull/8720
- tool to analyze bencher output by @arvidn in https://github.com/arvidn/libtorrent/pull/8739
- fix mis-attribution of tracker source when loading a torrent file by @arvidn in https://github.com/arvidn/libtorrent/pull/8741
- extend CI to build 32bit builds on windows by @arvidn in https://github.com/arvidn/libtorrent/pull/8738
- Valid char by @arvidn in https://github.com/arvidn/libtorrent/pull/8743
- optimize resetting SHA-1 and SHA-256 context when using OpenSSL by @arvidn in https://github.com/arvidn/libtorrent/pull/8746
- fix typos in RST format by @arvidn in https://github.com/arvidn/libtorrent/pull/8748
- avoid computing the other info-hash when loading a non-hybrid torrent by @arvidn in https://github.com/arvidn/libtorrent/pull/8745
- improve benchmark_load_torrent.py to be able to run specific cases by @arvidn in https://github.com/arvidn/libtorrent/pull/8750
- fix out of bounds read in bdecode on truncated list or dict by @isl-Ramzi in https://github.com/arvidn/libtorrent/pull/8754
- add fuzzer for (deprecated) bdecode() function by @arvidn in https://github.com/arvidn/libtorrent/pull/8758
- fix out of bounds read loading a hybrid torrent with no pieces by @isl-Ramzi in https://github.com/arvidn/libtorrent/pull/8759
- try to avoid sudo apt-get update stalling on CI by @arvidn in https://github.com/arvidn/libtorrent/pull/8767
- make sure fuzz targets aren't optimized out by @arvidn in https://github.com/arvidn/libtorrent/pull/8763
- optimize perf script invocations in benchmarks by @arvidn in https://github.com/arvidn/libtorrent/pull/8772
- fix default abi version by @arvidn in https://github.com/arvidn/libtorrent/pull/8774
- deprecate sanitize_symlinks(), all_path_hashes() and file_path_hash() by @arvidn in https://github.com/arvidn/libtorrent/pull/8779
- fix file priority updates being lost when issued in quick succession by @arvidn in https://github.com/arvidn/libtorrent/pull/8780
- improve proxy_hostname by @arvidn in https://github.com/arvidn/libtorrent/pull/8782
- Test merge by @arvidn in https://github.com/arvidn/libtorrent/pull/8787
- Limit compile definitions to specific platforms by @Chocobo1 in https://github.com/arvidn/libtorrent/pull/8786
- let the operating system pick the listen port by @arvidn in https://github.com/arvidn/libtorrent/pull/8791
- reject existing destinations in pread storage renames by @M-Hassan-Raza in https://github.com/arvidn/libtorrent/pull/8792
- fix race in stop_torrent disk I/O job and a hasher thread by @arvidn in https://github.com/arvidn/libtorrent/pull/8790
- fix pread pre-allocation after priority changes by @M-Hassan-Raza in https://github.com/arvidn/libtorrent/pull/8797
- fix bounds check in merkle_tree by @arvidn in https://github.com/arvidn/libtorrent/pull/8802
- Merkle tree fix 2.1 by @arvidn in https://github.com/arvidn/libtorrent/pull/8807
- Fix redirects with query and fragment paths by @M-Hassan-Raza in https://github.com/arvidn/libtorrent/pull/8813
- fix performance issue in get_piece_layer() by @arvidn in https://github.com/arvidn/libtorrent/pull/8815
- Test merge by @arvidn in https://github.com/arvidn/libtorrent/pull/8816
- fix validate_hash_request() by @arvidn in https://github.com/arvidn/libtorrent/pull/8823
- Handle larger netlink datagrams during interface enumeration by @tzi4 in https://github.com/arvidn/libtorrent/pull/8820
- fix bug in hash_picker timeout by @arvidn in https://github.com/arvidn/libtorrent/pull/8826
- Test merge by @arvidn in https://github.com/arvidn/libtorrent/pull/8832
- fix shutdown issue with in-flight incoming SSL peer connections by @arvidn in https://github.com/arvidn/libtorrent/pull/8835
- Test merge by @arvidn in https://github.com/arvidn/libtorrent/pull/8836
- Fix request merge 2.1 by @arvidn in https://github.com/arvidn/libtorrent/pull/8834
- Format max_metadata_size calculation by @zidel in https://github.com/arvidn/libtorrent/pull/8839
- the block hashes in merkle_tree have two meanings, either it's the ha… by @arvidn in https://github.com/arvidn/libtorrent/pull/8842
- Merkle tree piece passed by @arvidn in https://github.com/arvidn/libtorrent/pull/8843
- stricter check in merkle_validate_and_insert_proofs() by @arvidn in https://github.com/arvidn/libtorrent/pull/8847
- add_hashes() reports already downloaded pieces as passed by @arvidn in https://github.com/arvidn/libtorrent/pull/8846
- simplify hash request validation by @arvidn in https://github.com/arvidn/libtorrent/pull/8848
- Test merge by @arvidn in https://github.com/arvidn/libtorrent/pull/8844
- stricter checks of hash response messages by @arvidn in https://github.com/arvidn/libtorrent/pull/8849
- fix merkle_tree::allocate_full() for single block file by @arvidn in https://github.com/arvidn/libtorrent/pull/8853
- pad files are not downloaded from any peer by @arvidn in https://github.com/arvidn/libtorrent/pull/8852
- factor out a helper for payload_blocks_in_piece() by @arvidn in https://github.com/arvidn/libtorrent/pull/8854
- minor cleanup by @arvidn in https://github.com/arvidn/libtorrent/pull/8855
- fix Transmission legacy peer-ID misparsing (-TRXYYR-) by @HouseOfHufflepuff in https://github.com/arvidn/libtorrent/pull/8850
- fix edge case in merkle_tree::get_hashes() by @arvidn in https://github.com/arvidn/libtorrent/pull/8858
- remove malloc_usable_size() and friends from buffer by @HouseOfHufflepuff in https://github.com/arvidn/libtorrent/pull/8856
- Hash picker fixes by @arvidn in https://github.com/arvidn/libtorrent/pull/8859
- Test merge by @arvidn in https://github.com/arvidn/libtorrent/pull/8860
- the root node has no sibling by @arvidn in https://github.com/arvidn/libtorrent/pull/8862
- improve hash_picker::hashes_rejected() by @arvidn in https://github.com/arvidn/libtorrent/pull/8861
- handle hash rejected better by @arvidn in https://github.com/arvidn/libtorrent/pull/8863
- Test merge by @arvidn in https://github.com/arvidn/libtorrent/pull/8864
- fix parsing transmission 3.00 fingerprint by @arvidn in https://github.com/arvidn/libtorrent/pull/8866
- improve test_transfer to tolerate minor timing differences by @arvidn in https://github.com/arvidn/libtorrent/pull/8870
- fix deduplicate filenames by @arvidn in https://github.com/arvidn/libtorrent/pull/8868
- add missing python binding for filenames class by @arvidn in https://github.com/arvidn/libtorrent/pull/8872
- fix smart_ban and piece_picker notification of torrent::clear_peers() by @arvidn in https://github.com/arvidn/libtorrent/pull/8874
- remove_all() by @arvidn in https://github.com/arvidn/libtorrent/pull/8875
- Rename storage by @arvidn in https://github.com/arvidn/libtorrent/pull/8876
- factor out rename_file() from storage back-ends by @arvidn in https://github.com/arvidn/libtorrent/pull/8877
- support moving and renaming files/storage with symlinks by @arvidn in https://github.com/arvidn/libtorrent/pull/8879
- fix some style issues by @arvidn in https://github.com/arvidn/libtorrent/pull/8882
- attempt to improve copilot's reviews by @arvidn in https://github.com/arvidn/libtorrent/pull/8881
- add overload to truncate_files() that take renamed files into account by @arvidn in https://github.com/arvidn/libtorrent/pull/8885
- add missing python binding for filenames::file_name() by @arvidn in https://github.com/arvidn/libtorrent/pull/8886
- fix docs parser to also recognize libtorrent::aux as internal namespace by @arvidn in https://github.com/arvidn/libtorrent/pull/8897
- OS/2 also uses backslash, like windows by @arvidn in https://github.com/arvidn/libtorrent/pull/8899
- bump version to 2.0.15 by @arvidn in https://github.com/arvidn/libtorrent/pull/8902
- Test merge by @arvidn in https://github.com/arvidn/libtorrent/pull/8903
- bump version to 2.1.2 by @arvidn in https://github.com/arvidn/libtorrent/pull/8904
- fix subtle issue in inline assembly for CRC32 instructions by @arvidn in https://github.com/arvidn/libtorrent/pull/8906
- Test merge by @arvidn in https://github.com/arvidn/libtorrent/pull/8907
New Contributors
- @tzi4 made their first contribution in https://github.com/arvidn/libtorrent/pull/8820
- @zidel made their first contribution in https://github.com/arvidn/libtorrent/pull/8839
- @HouseOfHufflepuff made their first contribution in https://github.com/arvidn/libtorrent/pull/8850
Full Changelog: https://github.com/arvidn/libtorrent/compare/v2.1.1...v2.1.2