I finally wrote an app called Clutch to add this feature to Transmission! It is a separate app so you don't have to worry about patching, and it will continue to work when new updates to Transmission are released.
How does it work?
Transmission has a hidden option in its preferences file called "BindAddressIPv4" (and IPv6), which allows you to bind Transmission to an IP address. This is a nice feature, but it's a major inconvenience to have to update this address every time you start a new VPN connection. Clutch takes care of this for you!
The app has 2 parts:
- Clutch is the GUI part of the app and allows you to select the interface you want to bind Transmission to.
- Clutch Agent runs in the background (it has an icon in the menu bar) and monitors the IP address of the binding interface. When the IP address changes, it will update the binding IP address in Transmission's preferences and restart Transmission if it was running. There is also an option to start Clutch Agent automatically when you log in.
Please note that this is new software and may have bugs!
You can download the app here (move it to your Applications folder):
(In Version 1.1, Clutch now treats interfaces with the same name but different IPv4/IPv6 statuses as separate interfaces, preventing any traffic from accidentally being sent in the clear if a VPN doesn't support IPv6.)
https://mega.nz/#!qEh1AQQY!TK2gStUVWhaS ... Jz1pYOyS5I
https://mega.nz/#!PYoQHKpY!ID4wO3XDzjfm ... bn3h7ZQXpc
Clutch is fully open-source, so you can inspect the code yourself. I have licensed it under the BSD license and posted the full source code here:
I hope I'm not violating any forum rules by posting links here. This is free and open-source software, and it is intended to improve Transmission for Mac. Any feedback is welcome! You can also contribute to the code on GitHub!
Hope you like the app guys, let's ditch Vuze once and for all.