Don't use IPv4 addresses when the user has enabled IPv6 address in the settings.

Conflicts:
	src/qtlibtorrent/qbtsession.cpp
	src/smtp.cpp
This commit is contained in:
sledgehammer999 2014-09-02 14:36:51 +03:00
parent cf61dd3d09
commit 739132ec82
2 changed files with 9 additions and 5 deletions

View file

@ -2016,7 +2016,8 @@ void QBtSession::setListeningPort(int port) {
QString ip; QString ip;
qDebug("This network interface has %d IP addresses", network_iface.addressEntries().size()); qDebug("This network interface has %d IP addresses", network_iface.addressEntries().size());
foreach (const QNetworkAddressEntry &entry, network_iface.addressEntries()) { foreach (const QNetworkAddressEntry &entry, network_iface.addressEntries()) {
if (!listen_ipv6 && (entry.ip().protocol() == QAbstractSocket::IPv6Protocol)) if ((!listen_ipv6 && (entry.ip().protocol() == QAbstractSocket::IPv6Protocol))
|| (listen_ipv6 && (entry.ip().protocol() == QAbstractSocket::IPv4Protocol)))
continue; continue;
qDebug("Trying to listen on IP %s (%s)", qPrintable(entry.ip().toString()), qPrintable(iface_name)); qDebug("Trying to listen on IP %s (%s)", qPrintable(entry.ip().toString()), qPrintable(iface_name));
#if LIBTORRENT_VERSION_NUM >= 1600 #if LIBTORRENT_VERSION_NUM >= 1600
@ -2027,9 +2028,10 @@ void QBtSession::setListeningPort(int port) {
#endif #endif
ip = entry.ip().toString(); ip = entry.ip().toString();
addConsoleMessage(tr("qBittorrent is trying to listen on interface %1 port: TCP/%2", "e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881").arg(ip).arg(QString::number(port)), "blue"); addConsoleMessage(tr("qBittorrent is trying to listen on interface %1 port: TCP/%2", "e.g: qBittorrent is trying to listen on interface 192.168.0.1 port: TCP/6881").arg(ip).arg(QString::number(port)), "blue");
break; return;
} }
} }
addConsoleMessage(tr("qBittorrent didn't find an %1 local address to listen on", "qBittorrent didn't find an IPv4 local address to listen on").arg(listen_ipv6 ? "IPv6" : "IPv4"), "red");
} }
// Set download rate limit // Set download rate limit

View file

@ -87,7 +87,8 @@ QByteArray determineLocalAddress()
if (iface_name.isEmpty()) { if (iface_name.isEmpty()) {
foreach (const QHostAddress& addr, QNetworkInterface::allAddresses()) { foreach (const QHostAddress& addr, QNetworkInterface::allAddresses()) {
if (addr == QHostAddress::LocalHost || addr == QHostAddress::LocalHostIPv6 if (addr == QHostAddress::LocalHost || addr == QHostAddress::LocalHostIPv6
|| (!listen_ipv6 && (addr.protocol() == QAbstractSocket::IPv6Protocol))) || (!use_ipv6 && (addr.protocol() == QAbstractSocket::IPv6Protocol))
|| (use_ipv6 && (addr.protocol() == QAbstractSocket::IPv4Protocol)))
continue; continue;
address = addr.toString().toLatin1(); address = addr.toString().toLatin1();
break; break;
@ -100,7 +101,8 @@ QByteArray determineLocalAddress()
foreach (const QNetworkAddressEntry &entry, network_iface.addressEntries()) { foreach (const QNetworkAddressEntry &entry, network_iface.addressEntries()) {
if (entry.ip() == QHostAddress::LocalHost || entry.ip() == QHostAddress::LocalHostIPv6 if (entry.ip() == QHostAddress::LocalHost || entry.ip() == QHostAddress::LocalHostIPv6
|| (!listen_ipv6 && (entry.ip().protocol() == QAbstractSocket::IPv6Protocol))) || (!use_ipv6 && (entry.ip().protocol() == QAbstractSocket::IPv6Protocol))
|| (use_ipv6 && (entry.ip().protocol() == QAbstractSocket::IPv4Protocol)))
continue; continue;
address = entry.ip().toString().toLatin1(); address = entry.ip().toString().toLatin1();