Expose 'socket send/receive buffer size' options

Closes #18794.
This commit is contained in:
Chocobo1 2023-04-05 17:33:45 +08:00
parent 40e28930a4
commit 77411760a0
No known key found for this signature in database
GPG key ID: 210D9C873253A68C
8 changed files with 97 additions and 2 deletions

View file

@ -436,6 +436,8 @@ SessionImpl::SessionImpl(QObject *parent)
, m_sendBufferLowWatermark(BITTORRENT_SESSION_KEY(u"SendBufferLowWatermark"_qs), 10)
, m_sendBufferWatermarkFactor(BITTORRENT_SESSION_KEY(u"SendBufferWatermarkFactor"_qs), 50)
, m_connectionSpeed(BITTORRENT_SESSION_KEY(u"ConnectionSpeed"_qs), 30)
, m_socketSendBufferSize(BITTORRENT_SESSION_KEY(u"SocketSendBufferSize"_qs), 0)
, m_socketReceiveBufferSize(BITTORRENT_SESSION_KEY(u"SocketReceiveBufferSize"_qs), 0)
, m_socketBacklogSize(BITTORRENT_SESSION_KEY(u"SocketBacklogSize"_qs), 30)
, m_isAnonymousModeEnabled(BITTORRENT_SESSION_KEY(u"AnonymousModeEnabled"_qs), false)
, m_isQueueingEnabled(BITTORRENT_SESSION_KEY(u"QueueingSystemEnabled"_qs), false)
@ -1599,6 +1601,8 @@ lt::settings_pack SessionImpl::loadLTSettings() const
// from libtorrent doc:
// It will not take affect until the listen_interfaces settings is updated
settingsPack.set_int(lt::settings_pack::send_socket_buffer_size, socketSendBufferSize());
settingsPack.set_int(lt::settings_pack::recv_socket_buffer_size, socketReceiveBufferSize());
settingsPack.set_int(lt::settings_pack::listen_queue_size, socketBacklogSize());
applyNetworkInterfacesSettings(settingsPack);
@ -4181,6 +4185,34 @@ void SessionImpl::setConnectionSpeed(const int value)
configureDeferred();
}
int SessionImpl::socketSendBufferSize() const
{
return m_socketSendBufferSize;
}
void SessionImpl::setSocketSendBufferSize(const int value)
{
if (value == m_socketSendBufferSize)
return;
m_socketSendBufferSize = value;
configureDeferred();
}
int SessionImpl::socketReceiveBufferSize() const
{
return m_socketReceiveBufferSize;
}
void SessionImpl::setSocketReceiveBufferSize(const int value)
{
if (value == m_socketReceiveBufferSize)
return;
m_socketReceiveBufferSize = value;
configureDeferred();
}
int SessionImpl::socketBacklogSize() const
{
return m_socketBacklogSize;