crazy-max / docker-rtorrent-rutorrent

rTorrent and ruTorrent Docker image
MIT License
457 stars 103 forks source link

rTorrent: Implement UDNS support #303

Closed stickz closed 6 months ago

stickz commented 6 months ago

This pull request implements the UDNS library into libtorrent for asynchronous DNS requests on UDP trackers. The current c-ares support is limited to TCP trackers.

It resolves stability issues with the rTorrent software stack where UDP trackers run synchronously by default. With a large number of torrents, the software will give out and fail to seed torrents.

It also caches the result of sscanf into vector object, to avoid calling it thousands of times on broken trackers. This prevents the software from crashing and increases overall performance.

stickz commented 6 months ago

@crazy-max Ready for review now. I decided to use udns-dev instead of compiling from source.