Simplify proxy related code

This commit is contained in:
Chocobo1 2025-03-25 05:08:28 +08:00
parent 943e403241
commit 5a716a40fb
No known key found for this signature in database
GPG key ID: 210D9C873253A68C

View file

@ -265,38 +265,37 @@ void Net::DownloadManager::applyProxySettings()
const auto *proxyManager = ProxyConfigurationManager::instance(); const auto *proxyManager = ProxyConfigurationManager::instance();
const ProxyConfiguration proxyConfig = proxyManager->proxyConfiguration(); const ProxyConfiguration proxyConfig = proxyManager->proxyConfiguration();
switch (proxyConfig.type)
{
case Net::ProxyType::None:
case Net::ProxyType::SOCKS4:
m_proxy = QNetworkProxy(QNetworkProxy::NoProxy); m_proxy = QNetworkProxy(QNetworkProxy::NoProxy);
break;
if ((proxyConfig.type == Net::ProxyType::None) || (proxyConfig.type == ProxyType::SOCKS4)) case Net::ProxyType::HTTP:
return; m_proxy = QNetworkProxy(
QNetworkProxy::HttpProxy
, proxyConfig.ip
, proxyConfig.port
, (proxyConfig.authEnabled ? proxyConfig.username : QString())
, (proxyConfig.authEnabled ? proxyConfig.password : QString()));
m_proxy.setCapabilities(proxyConfig.hostnameLookupEnabled
? (m_proxy.capabilities() | QNetworkProxy::HostNameLookupCapability)
: (m_proxy.capabilities() & ~QNetworkProxy::HostNameLookupCapability));
break;
// Proxy enabled case Net::ProxyType::SOCKS5:
if (proxyConfig.type == ProxyType::SOCKS5) m_proxy = QNetworkProxy(
{ QNetworkProxy::Socks5Proxy
qDebug() << Q_FUNC_INFO << "using SOCKS proxy"; , proxyConfig.ip
m_proxy.setType(QNetworkProxy::Socks5Proxy); , proxyConfig.port
} , (proxyConfig.authEnabled ? proxyConfig.username : QString())
else , (proxyConfig.authEnabled ? proxyConfig.password : QString()));
{ m_proxy.setCapabilities(proxyConfig.hostnameLookupEnabled
qDebug() << Q_FUNC_INFO << "using HTTP proxy"; ? (m_proxy.capabilities() | QNetworkProxy::HostNameLookupCapability)
m_proxy.setType(QNetworkProxy::HttpProxy); : (m_proxy.capabilities() & ~QNetworkProxy::HostNameLookupCapability));
} break;
};
m_proxy.setHostName(proxyConfig.ip);
m_proxy.setPort(proxyConfig.port);
// Authentication?
if (proxyConfig.authEnabled)
{
qDebug("Proxy requires authentication, authenticating...");
m_proxy.setUser(proxyConfig.username);
m_proxy.setPassword(proxyConfig.password);
}
if (proxyConfig.hostnameLookupEnabled)
m_proxy.setCapabilities(m_proxy.capabilities() | QNetworkProxy::HostNameLookupCapability);
else
m_proxy.setCapabilities(m_proxy.capabilities() & ~QNetworkProxy::HostNameLookupCapability);
} }
void Net::DownloadManager::processWaitingJobs(const ServiceID &serviceID) void Net::DownloadManager::processWaitingJobs(const ServiceID &serviceID)