Add support for allow_idna option

Upstream PR: https://github.com/arvidn/libtorrent/pull/5316
This commit is contained in:
Chocobo1 2020-12-01 10:53:48 +08:00
parent 0baa23f553
commit 20ae89c2a1
No known key found for this signature in database
GPG key ID: 210D9C873253A68C
6 changed files with 55 additions and 1 deletions

View file

@ -387,6 +387,7 @@ Session::Session(QObject *parent)
, m_isUTPRateLimited(BITTORRENT_SESSION_KEY("uTPRateLimited"), true)
, m_utpMixedMode(BITTORRENT_SESSION_KEY("uTPMixedMode"), MixedModeAlgorithm::TCP
, clampValue(MixedModeAlgorithm::TCP, MixedModeAlgorithm::Proportional))
, m_IDNSupportEnabled(BITTORRENT_SESSION_KEY("IDNSupportEnabled"), false)
, m_multiConnectionsPerIpEnabled(BITTORRENT_SESSION_KEY("MultiConnectionsPerIp"), false)
, m_validateHTTPSTrackerCertificate(BITTORRENT_SESSION_KEY("ValidateHTTPSTrackerCertificate"), false)
, m_blockPeersOnPrivilegedPorts(BITTORRENT_SESSION_KEY("BlockPeersOnPrivilegedPorts"), false)
@ -1425,6 +1426,10 @@ void Session::loadLTSettings(lt::settings_pack &settingsPack)
break;
}
#ifdef HAS_IDN_SUPPORT
settingsPack.set_bool(lt::settings_pack::allow_idna, isIDNSupportEnabled());
#endif
settingsPack.set_bool(lt::settings_pack::allow_multiple_connections_per_ip, multiConnectionsPerIpEnabled());
#ifdef HAS_HTTPS_TRACKER_VALIDATION
@ -3698,6 +3703,19 @@ void Session::setUtpMixedMode(const MixedModeAlgorithm mode)
configureDeferred();
}
bool Session::isIDNSupportEnabled() const
{
return m_IDNSupportEnabled;
}
void Session::setIDNSupportEnabled(const bool enabled)
{
if (enabled == m_IDNSupportEnabled) return;
m_IDNSupportEnabled = enabled;
configureDeferred();
}
bool Session::multiConnectionsPerIpEnabled() const
{
return m_multiConnectionsPerIpEnabled;