Support using a proxy to connect to trackers
Main goal is to keep p2p exchange direct but use trackers and maybe DHT via socks proxy. Need a way to obtain IP to announce (ipify.org) in case of dynamic IP.
This seems pretty advanced use, so I wonder how many people would use this feature.
Still, it might be possible by having a config setting to add something to curl_easy with CURLOPT_PROXY.
If someone wants to write a PR for that, I'd probably accept it.
This feature's existence is practically the only reason why I use qBittorrent over Transmission. When a torrent tracker is blocked, it can be very useful to be able to connect to it specifically through Tor or some other proxy, while keeping one's p2p connections direct and fast.
This seems pretty advanced use, so I wonder how many people would use this feature.
Some restricted connections (read: China) are terrible for trackers but acceptable for DHT, PeX, and regular peer stuff.
We city dwellers have acceptable bandwidth, non-ideal QoS, virtually inexistent piracy enforcement, and very unreliable tracker connection here. If you fix the tracker part, this place would be great for BT.
Need a way to obtain IP to announce (ipify.org) in case of dynamic IP.
This will be hard, because the tracker is unlikely to trust an IP parameter. qBT has a "ip given to tracker" option, but it is for debug only.
The best thing we can do is do a proxy and get a list of peers for connecting to, then use decentralized things to make your peer known to the network at large. Slightly favoring leechers, but that's life.
specifying proxy via http_proxy environment variable seems to work because libcurl supports it, found this mention at https://github.com/transmission/transmission/blob/main/docs/Environment-Variables.md#standard-variables-used-by-other-tools
example for macOS, tested on v4.0.6:
open --env http_proxy=MY.WEBSITE:PROXY_PORT /Applications/Transmission.app