summaryrefslogtreecommitdiffstats
path: root/deluge/core/core.py
diff options
context:
space:
mode:
authorDoadin <tbkizle@gmail.com>2018-05-02 00:14:02 -0400
committerUnknown <tbkizle@gmail.com>2018-05-21 13:14:15 -0400
commit196aa48727276fafeb16bc7d845c91e55995652e (patch)
tree84639640ce10417a9c4e5f1717d9ec53544182d4 /deluge/core/core.py
parentaf2972f6975bb3a4949fb6db84df270491c4ca7f (diff)
downloaddeluge-196aa48727276fafeb16bc7d845c91e55995652e.tar.gz
deluge-196aa48727276fafeb16bc7d845c91e55995652e.tar.bz2
deluge-196aa48727276fafeb16bc7d845c91e55995652e.zip
[#3171] Add Option To Specify Outgoing Connection Interface
Diffstat (limited to 'deluge/core/core.py')
-rw-r--r--deluge/core/core.py12
1 files changed, 11 insertions, 1 deletions
diff --git a/deluge/core/core.py b/deluge/core/core.py
index 4b80a55d8..10861c631 100644
--- a/deluge/core/core.py
+++ b/deluge/core/core.py
@@ -101,7 +101,7 @@ DELUGE_VER = deluge.common.get_version()
class Core(component.Component):
- def __init__(self, listen_interface=None, read_only_config_keys=None):
+ def __init__(self, listen_interface=None, outgoing_interface=None, read_only_config_keys=None):
component.Component.__init__(self, 'Core')
# Start the libtorrent session.
@@ -163,6 +163,13 @@ class Core(component.Component):
self.config['listen_interface'] = listen_interface
else:
log.error('Invalid listen interface (must be IP Address): %s', listen_interface)
+ self.__old_outgoing_interface = None
+ if outgoing_interface:
+ if deluge.common.is_ip(outgoing_interface):
+ self.__old_outgoing_interface = self.config['outgoing_interface']
+ self.config['outgoing_interface'] = outgoing_interface
+ else:
+ log.error('Invalid outgoing interface (must be IP Address): %s', outgoing_interface)
# New release check information
self.__new_release = None
@@ -197,6 +204,9 @@ class Core(component.Component):
if self.__old_interface:
self.config['listen_interface'] = self.__old_interface
+ if self.__old_outgoing_interface:
+ self.config['outgoing_interface'] = self.__old_outgoing_interface
+
# Make sure the config file has been saved
self.config.save()