mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2024-12-27 08:19:30 +08:00
Add a workaround for QTBUG-52633, qBt issue #5073
The QTBUG-52633 results in food of network interface changed events, libtorrent IP rebind calls and flood in the qBt log. The work around is the check not only for interface name, but for IP address on that interface before triggering the libtorrent rebind.
This commit is contained in:
parent
d88ec48468
commit
9a123c42c3
@ -1935,7 +1935,17 @@ void Session::networkConfigurationChange(const QNetworkConfiguration& cfg)
|
||||
if (configuredInterfaceName.isEmpty()) return;
|
||||
|
||||
const QString changedInterface = cfg.name();
|
||||
|
||||
// workaround for QTBUG-52633: check interface IPs, react only if the IPs have changed
|
||||
// seems to be present only with NetworkManager, hence Q_OS_LINUX
|
||||
#if defined Q_OS_LINUX && QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) // && QT_VERSION <= QT_VERSION_CHECK(5, ?, ?)
|
||||
static QStringList boundIPs = getListeningIPs();
|
||||
const QStringList newBoundIPs = getListeningIPs();
|
||||
if ((configuredInterfaceName == changedInterface) && (boundIPs != newBoundIPs)) {
|
||||
boundIPs = newBoundIPs;
|
||||
#else
|
||||
if (configuredInterfaceName == changedInterface) {
|
||||
#endif
|
||||
Logger::instance()->addMessage(tr("Network configuration of %1 has changed, refreshing session binding", "e.g: Network configuration of tun0 has changed, refreshing session binding").arg(changedInterface), Log::INFO);
|
||||
configureListeningInterface();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user