Summary
This release includes various bugfixes and minor improvements as part of a stable series of releases.
Fixed bind address syntax
Removed the custom ip%device syntax for binding to a specific device, and replaced it with with network.bind_device.set and network.bind_device.ipv{4,6}.set commands.
Development Funding
Current development relies on donations, and as such is highly appreciated.
Donations make futher development possible, and as such are highly appreciated:
- Paypal
- Patreon
- SubscribeStar
- Bitcoin: 1MpmXm5AHtdBoDaLZstJw8nupJJaeKu8V8
- Ethereum: 0x9AB1e3C3d8a875e870f161b3e9287Db0E6DAfF78
- Litecoin: LdyaVR67LBnTf6mAT4QJnjSG2Zk67qxmfQ
- Cardano: addr1qytaslmqmk6dspltw06sp0zf83dh09u79j49ceh5y26zdcccgq4ph7nmx6kgmzeldauj43254ey97f3x4xw49d86aguqwfhlte
What's Changed
Bug Fixes / Cleanup / Improvements
- Clean up a peer connection dropped on setup by @noctuum
- Remove unused declarations, functions and members by @noctuum
- Fix the last metadata piece length by @noctuum
- Check the size of a DHT cache contact entry by @noctuum
- Free the pending extension message on destruction by @noctuum
- Do not truncate the metadata reject message by @noctuum
- Rebuild the indirect links on every open by @noctuum
- Lock the interval writes in TrackerDht by @noctuum
- Create the root directory on a retried open by @noctuum
- Remove the self reference stored in DhtSearch by @noctuum
- Break the DHT transaction and packet cycle by @noctuum
- Use explicit device name binding rather than a custom syntax. by @rakshasa
- Fix DHT announce_peer port endianness in compact peer storage by @rakshasa
- Queue the completed event if no tracker is in use by @noctuum
- Move the stalled requests when the peer chokes by @noctuum
- Wait on the observed count in FdCloseQueue by @noctuum
- Sanitize tracker failure and scrape messages at the TrackerList sink by @xirvik
- Bound dictionary nesting depth in the static map bencode parser by @xirvik
- Pass the missing DHT port argument to the restart-failure log by @xirvik
- Close the log output when a log_buffer is destroyed by @xirvik
- Make the Chunk buffer range checks wrap-safe by @xirvik
- Fix one-byte overflow of the domain name buffer in udns dns_getdn by @xirvik
- Always return a replacement candidate from a non-empty DHT bucket by @xirvik
- Add a change counter to ConnectionList by @xirvik
- Range check ProtocolBuffer::consume by @xirvik
- Fix three log format argument mismatches by @xirvik
- Keep reading inotify events after an entry with no name by @xirvik
- Fix least active cache being filled with files that were just closed by @xirvik
- Delete the transfer when a peer has no connection to cancel it by @xirvik
- Free the udns result the resolver callbacks take ownership of by @xirvik
- Fix heap overflow writing the question name of a compressed DNS reply by @xirvik
- Check the info-hash target in p.call_target by @noctuum
- Use empty_visible in the view focus movers by @noctuum
- Clamp the negative width in wstring_width by @noctuum
- Do not reschedule a deleted scheduler item by @noctuum
- Guard the value iterator in method.insert.list by @noctuum
- Release the xmlrpc array item on a throw by @noctuum
- Call the target deleter in the tinyxml2 backend by @noctuum
- Reject an over-long line instead of truncating by @noctuum
- Check the flush on the dht cache and history by @noctuum
- Take ownership of the magnet metadata object by @noctuum
- Reject a throttle rate that does not parse by @noctuum
- Release the scgi task buffer on close by @noctuum
- Increment d.state_counter on pause by @noctuum
- Own the download factory until commit by @noctuum
- Use explicit device name binding rather than a custom syntax. by @rakshasa
- Reject an over-long or empty object_storage key by @noctuum
- Report a failed write in log.vmmap.dump by @noctuum
- Own the fault string in xmlrpc_error_c by @noctuum
- Reject a throttle rate that overflows by @noctuum
- Dispatch view.event_added over the added half of the changed range by @xirvik
- Check the argument count before indexing config comment log args by @xirvik
- Answer an oversized RPC response with a fault by @xirvik
- Keep starting when the DHT cache file is rejected by @xirvik
- Give network.xmlrpc.size_limit.set a floor by @xirvik
- Fix data race reading the log buffer from the display thread by @xirvik
- Stop printing a strerror of si_errno in the SIGBUS dump by @xirvik
- Fix use-after-free when p.multicall commands disconnect peers by @xirvik
- Drop the address range parser and its includes, dead since 29edda2 by @xirvik
- Dump the ipv4 filter by reference instead of copying the whole map by @xirvik
- Stop the value command on the untrusted-safe allowlist crashing the daemon by @xirvik
- Pass the typed download filter as an argument, not command text by @xirvik
- Keep the object_storage key terminator inside the key buffer by @xirvik