diff --git a/deluge/core/preferencesmanager.py b/deluge/core/preferencesmanager.py
index bdc7f1c..6c7c41e 100644
--- a/deluge/core/preferencesmanager.py
+++ b/deluge/core/preferencesmanager.py
@@ -57,6 +57,7 @@
"download_location": deluge.common.get_default_download_dir(),
"listen_ports": [6881, 6891],
"listen_interface": "",
+ "announce_ip": "",
"copy_torrent_file": False,
"del_copy_torrent_file": False,
"torrentfiles_location": deluge.common.get_default_download_dir(),
@@ -204,6 +205,11 @@ def _on_set_listen_interface(self, key, value):
# Call the random_port callback since it'll do what we need
self._on_set_random_port("random_port", self.config["random_port"])
+ def _on_set_announce_ip(self, key, value):
+ if value != "":
+ log.debug("tracker announce IP address set to %s", value)
+ self.session_set_setting("announce_ip", str(value))
+
def _on_set_random_port(self, key, value):
log.debug("random port value set to %s", value)
# We need to check if the value has been changed to true and false
diff --git a/deluge/ui/gtkui/glade/preferences_dialog.ui b/deluge/ui/gtkui/glade/preferences_dialog.ui
index 2364629..6732d41 100644
--- a/deluge/ui/gtkui/glade/preferences_dialog.ui
+++ b/deluge/ui/gtkui/glade/preferences_dialog.ui
@@ -1372,6 +1372,64 @@ used sparingly.
+
+
+ False
+ False
+ 5
+
+
+
True
False
@@ -1447,7 +1505,7 @@ used sparingly.
False
True
5
- 5
+ 6
@@ -1577,7 +1635,7 @@ used sparingly.
False
True
5
- 6
+ 7
@@ -1769,7 +1827,7 @@ used sparingly.
False
False
5
- 7
+ 8
diff --git a/deluge/ui/gtkui/preferences.py b/deluge/ui/gtkui/preferences.py
index 7ba931a..e481fa5 100644
--- a/deluge/ui/gtkui/preferences.py
+++ b/deluge/ui/gtkui/preferences.py
@@ -316,6 +316,7 @@ def _show(self):
"spin_outgoing_port_max": ("value", self.core_config["outgoing_ports"][1]),
"chk_random_outgoing_ports": ("active", self.core_config["random_outgoing_ports"]),
"entry_interface": ("text", self.core_config["listen_interface"]),
+ "entry_announce_ip": ("text", self.core_config["announce_ip"]),
"entry_peer_tos": ("text", self.core_config["peer_tos"]),
"chk_dht": ("active", self.core_config["dht"]),
"chk_upnp": ("active", self.core_config["upnp"]),
@@ -471,6 +472,7 @@ def _show(self):
"spin_outgoing_port_max",
"chk_random_outgoing_ports",
"entry_interface",
+ "entry_announce_ip",
"entry_peer_tos",
"chk_dht",
"chk_upnp",
@@ -666,6 +668,7 @@ def set_config(self, hide=False):
new_core_config["random_outgoing_ports"] = \
self.builder.get_object("chk_random_outgoing_ports").get_active()
new_core_config["listen_interface"] = self.builder.get_object("entry_interface").get_text()
+ new_core_config["announce_ip"] = self.builder.get_object("entry_announce_ip").get_text()
new_core_config["peer_tos"] = self.builder.get_object("entry_peer_tos").get_text()
new_core_config["dht"] = self.builder.get_object("chk_dht").get_active()
new_core_config["upnp"] = self.builder.get_object("chk_upnp").get_active()
diff --git a/deluge/ui/web/js/deluge-all/preferences/NetworkPage.js b/deluge/ui/web/js/deluge-all/preferences/NetworkPage.js
index 13b1448..6f61d25 100644
--- a/deluge/ui/web/js/deluge-all/preferences/NetworkPage.js
+++ b/deluge/ui/web/js/deluge-all/preferences/NetworkPage.js
@@ -170,6 +170,22 @@ Deluge.preferences.Network = Ext.extend(Ext.form.FormPanel, {
fieldset = this.add({
xtype: 'fieldset',
border: false,
+ title: _('Tracker Announce IP Address'),
+ style: 'margin-bottom: 5px; padding-bottom: 0px;',
+ autoHeight: true,
+ labelWidth: 1,
+ defaultType: 'textfield'
+ });
+ optMan.bind('announce_ip', fieldset.add({
+ name: 'announce_ip',
+ fieldLabel: '',
+ labelSeparator: '',
+ width: 200
+ }));
+
+ fieldset = this.add({
+ xtype: 'fieldset',
+ border: false,
title: _('TOS'),
style: 'margin-bottom: 5px; padding-bottom: 0px;',
bodyStyle: 'margin: 0px; padding: 0px',
diff --git a/deluge/ui/web/js/deluge-all/preferences/PreferencesWindow.js b/deluge/ui/web/js/deluge-all/preferences/PreferencesWindow.js
index 67f11fe..7f28263 100644
--- a/deluge/ui/web/js/deluge-all/preferences/PreferencesWindow.js
+++ b/deluge/ui/web/js/deluge-all/preferences/PreferencesWindow.js
@@ -47,7 +47,7 @@ Deluge.preferences.PreferencesWindow = Ext.extend(Ext.Window, {
title: _('Preferences'),
layout: 'border',
width: 485,
- height: 500,
+ height: 510,
buttonAlign: 'right',
closeAction: 'hide',