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.
This pull request implements the
UDNS
library intolibtorrent
for asynchronous DNS requests on UDP trackers. The currentc-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.