Add port forwarding option for embedded tracker

Closes #17781.
PR #17981.
This commit is contained in:
Chocobo1
2022-11-07 11:32:11 +08:00
committed by GitHub
parent c80238d66f
commit f6735401f4
9 changed files with 54 additions and 10 deletions

View File

@@ -372,6 +372,7 @@ void AppController::preferencesAction()
// Embedded tracker
data[u"enable_embedded_tracker"_qs] = session->isTrackerEnabled();
data[u"embedded_tracker_port"_qs] = pref->getTrackerPort();
data[u"embedded_tracker_port_forwarding"_qs] = pref->isTrackerPortForwardingEnabled();
// Choking algorithm
data[u"upload_slots_behavior"_qs] = static_cast<int>(session->chokingAlgorithm());
// Seed choking algorithm
@@ -899,6 +900,8 @@ void AppController::setPreferencesAction()
// Embedded tracker
if (hasKey(u"embedded_tracker_port"_qs))
pref->setTrackerPort(it.value().toInt());
if (hasKey(u"embedded_tracker_port_forwarding"_qs))
pref->setTrackerPortForwardingEnabled(it.value().toBool());
if (hasKey(u"enable_embedded_tracker"_qs))
session->setTrackerEnabled(it.value().toBool());
// Choking algorithm

View File

@@ -52,7 +52,7 @@
#include "base/utils/version.h"
#include "api/isessionmanager.h"
inline const Utils::Version<3, 2> API_VERSION {2, 8, 17};
inline const Utils::Version<3, 2> API_VERSION {2, 8, 18};
class APIController;
class AuthController;

View File

@@ -1016,6 +1016,14 @@ Use ';' to split multiple entries. Can use wildcard '*'.)QBT_TR[CONTEXT=OptionsD
<input type="text" id="embeddedTrackerPort" style="width: 15em;" />
</td>
</tr>
<tr>
<td>
<label for="embeddedTrackerPortForwarding">QBT_TR(Enable port forwarding for embedded tracker:)QBT_TR[CONTEXT=OptionsDialog]</label>
</td>
<td>
<input type="checkbox" id="embeddedTrackerPortForwarding" />
</td>
</tr>
</table>
</fieldset>
<fieldset class="settings">
@@ -2099,6 +2107,7 @@ Use ';' to split multiple entries. Can use wildcard '*'.)QBT_TR[CONTEXT=OptionsD
$('blockPeersOnPrivilegedPorts').setProperty('checked', pref.block_peers_on_privileged_ports);
$('enableEmbeddedTracker').setProperty('checked', pref.enable_embedded_tracker);
$('embeddedTrackerPort').setProperty('value', pref.embedded_tracker_port);
$('embeddedTrackerPortForwarding').setProperty('checked', pref.embedded_tracker_port_forwarding);
$('uploadSlotsBehavior').setProperty('value', pref.upload_slots_behavior);
$('uploadChokingAlgorithm').setProperty('value', pref.upload_choking_algorithm);
$('announceAllTrackers').setProperty('checked', pref.announce_to_all_trackers);
@@ -2526,6 +2535,7 @@ Use ';' to split multiple entries. Can use wildcard '*'.)QBT_TR[CONTEXT=OptionsD
settings.set('block_peers_on_privileged_ports', $('blockPeersOnPrivilegedPorts').getProperty('checked'));
settings.set('enable_embedded_tracker', $('enableEmbeddedTracker').getProperty('checked'));
settings.set('embedded_tracker_port', $('embeddedTrackerPort').getProperty('value'));
settings.set('embedded_tracker_port_forwarding', $('embeddedTrackerPortForwarding').getProperty('checked'));
settings.set('upload_slots_behavior', $('uploadSlotsBehavior').getProperty('value'));
settings.set('upload_choking_algorithm', $('uploadChokingAlgorithm').getProperty('value'));
settings.set('announce_to_all_trackers', $('announceAllTrackers').getProperty('checked'));