What's Changed
- fix issue in loading v2 resume data merkle trees by @arvidn in #8213
- Update
nick-fields/retryaction fornode 24compatibility by @xavier2k6 in #8219 - cmake - fix python install path being treated as absolute by @Andrej730 in #8221
- Reserve vector space before use by @Chocobo1 in #8232
- fix socks5 issues by @arvidn in #8229
- fix to_req() to not request pad-space for v2-only torrents by @arvidn in #8231
- fixup recent change to piece_size_for_req() by @arvidn in #8236
- Allow multiple connections from the same Peer ID by @lzhzh1 in #8215
- add setting for NAT-PMP lease duration by @arvidn in #8239
- fix flaky test in test_flags by @arvidn in #8254
- backport fixes detected by cppcheck in master by @arvidn in #8261
- Static OpenSSL Windows Action by @qstokkink in #8240
- Add support for OpenSSL 4.0 by @Chocobo1 in #8270
- add warning to get_download_queue() documentation by @arvidn in #8272
- V2 piece check fix by @arvidn in #8274
- add ubuntu-arm to Python binding CI by @arvidn in #8275
- Use Boost 1.91.0 in Windows CI by @xavier2k6 in #8281
- fix CIFuzz issue by @arvidn in #8290
- Update cibuildwheel workflow by @xavier2k6 in #8287
- NATPMP fixes by @arvidn in #8297
- Add Python MacOS x86_64 builds to cibuildwheel by @qstokkink in #8285
- fix flaky test involving web_server.py in windows by @arvidn in #8300
- Bump some pre-commit hook revs by @xavier2k6 in #8288
- fixed piece-picker accounting issue for filtered pieces by @arvidn in #8305
- backport the wait_for_alert() fix from RC_2_1 by @arvidn in #8313
- clean up some strncmp() by using string_view by @arvidn in #8320
- fix socks5 parsing edge case by @arvidn in #8321
- stricter checking of tracker URLs by @arvidn in #8318
- tighten validation of v2 hash requests by @arvidn in #8322
- fix off-by-one in loading banned peers from resume data by @arvidn in #8323
- fix edge case in socks5 UDP unwrap() by @arvidn in #8324
- make parse_magnet_uri() stricter by @arvidn in #8325
- remove cirrus CI by @arvidn in #8326
- add warning message to read_resume_data() by @arvidn in #8328
- fix incorrect invariant check in torrent.cpp by @arvidn in #8331
- GHA CI: Replace
third partyaction withnode24 compatiblevariant by @xavier2k6 in #8327 - Fix resume file save trigger on PEX/LSD change by @Bonstra in #8333
- optimize sanitization of symlinks when loading torrents by @arvidn in #8334
- Fixup web seed by @arvidn in #8336
- sanitize add_torrent_params by @arvidn in #8341
- strengthen peer encryption (obfuscation) by @arvidn in #8350
- in create_torrent, store symbolic links according to BEP 47 by @arvidn in #8349
- fix bug in combine_path by @arvidn in #8352
- address potential dangling pointers in smart_ban by @arvidn in #8357
- sanitize time counters in add_torrent_params by @arvidn in #8358
- fix bug in post_download_queue() when a torrent complete by @arvidn in #8376
- add two documentation comments for portmaps by @arvidn in #8371
- Fix quoted I2P SAM values by @M-Hassan-Raza in #8369
- Fix bandwidth channel iteration by @M-Hassan-Raza in #8374
- Return partial byte count from pwrite_all on error by @M-Hassan-Raza in #8380
- fix race when removing an auto managed torrent by @arvidn in #8383
- Fix UPnP content-type checks by @M-Hassan-Raza in #8370
- don't print warning for some undocumented functions by @arvidn in #8385
- use v2 hashes for hybrid torrents, instead of smart_ban by @arvidn in #8386
- Handle short reads from part files by @M-Hassan-Raza in #8381
- improve performance of disk job pool by @arvidn in #8391
- fix bug in tracker announcements involving i2p trackers by @arvidn in #8398
- Fix peer class bandwidth channel capacity by @M-Hassan-Raza in #8388
- Fix mmap disk jobs stranded behind fences by @M-Hassan-Raza in #8389
- avoid busy looping in tests by @arvidn in #8413
- Match DHT RPC replies by full endpoint by @M-Hassan-Raza in #8410
- Fix deprecated pair piece priorities by @M-Hassan-Raza in #8430
- Fix reject piece request iteration by @M-Hassan-Raza in #8432
- fix issue with graceful pause during shutdown by @arvidn in #8435
- Fix DH xor mask secret padding by @M-Hassan-Raza in #8434
- Fix whole-piece prefetch overflow by @M-Hassan-Raza in #8436
- mark hashes as have=true to avoid double-requests by @arvidn in #8442
- Fix SOCKS5 auth request bounds by @M-Hassan-Raza in #8441
- stricter checks in hash-picker by @arvidn in #8446
- fix typo in get_drive_info() by @arvidn in #8448
- fix issue in uTP shutdown by @arvidn in #8450
- extend get_drive_info by @arvidn in #8452
- Stop tracker timeout web server by @hussainarslan in #8454
- Validate resume files touched by completed pieces by @hussainarslan in #8451
- stricter basic auth handling for web seed by @arvidn in #8319
- Fix DHT upload quota zero limit by @M-Hassan-Raza in #8456
- clear HTTP credentials on redirected web seeds by @arvidn in #8455
- fix merkle proof cleanup by @arvidn in #8461
- bump version to 2.0.13 by @arvidn in #8462
New Contributors
- @Andrej730 made their first contribution in #8221
- @lzhzh1 made their first contribution in #8215
- @Bonstra made their first contribution in #8333
- @hussainarslan made their first contribution in #8454
Full Changelog: v2.0.12...v2.0.13