mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2024-11-23 17:56:50 +03:00
Improved IP address parsing
This commit is contained in:
parent
da95d5e0df
commit
41a61ced89
2 changed files with 40 additions and 7 deletions
|
@ -35,6 +35,7 @@
|
|||
#include <QFile>
|
||||
#include <QDataStream>
|
||||
#include <QStringList>
|
||||
#include <QHostAddress>
|
||||
|
||||
#include <libtorrent/session.hpp>
|
||||
#include <libtorrent/ip_filter.hpp>
|
||||
|
@ -61,6 +62,14 @@ private:
|
|||
QString filePath;
|
||||
|
||||
protected:
|
||||
QString cleanupIPAddress(QString _ip) {
|
||||
QHostAddress ip(_ip.trimmed());
|
||||
if(ip.isNull()) {
|
||||
return QString();
|
||||
}
|
||||
return ip.toString();
|
||||
}
|
||||
|
||||
void run(){
|
||||
qDebug("Processing filter file");
|
||||
if(filePath.endsWith(".dat", Qt::CaseInsensitive)) {
|
||||
|
@ -125,14 +134,24 @@ public:
|
|||
}
|
||||
|
||||
boost::system::error_code ec;
|
||||
const QString strStartIP = IPs.at(0).trimmed();
|
||||
const QString strStartIP = cleanupIPAddress(IPs.at(0));
|
||||
if(strStartIP.isEmpty()) {
|
||||
qDebug("Ipfilter.dat: line %d is malformed.", nbLine);
|
||||
qDebug("Start IP of the range is malformated: %s", qPrintable(strStartIP));
|
||||
continue;
|
||||
}
|
||||
libtorrent::address startAddr = libtorrent::address::from_string(qPrintable(strStartIP), ec);
|
||||
if(ec) {
|
||||
qDebug("Ipfilter.dat: line %d is malformed.", nbLine);
|
||||
qDebug("Start IP of the range is malformated: %s", qPrintable(strStartIP));
|
||||
continue;
|
||||
}
|
||||
const QString strEndIP = IPs.at(1).trimmed();
|
||||
const QString strEndIP = cleanupIPAddress(IPs.at(1));
|
||||
if(strEndIP.isEmpty()) {
|
||||
qDebug("Ipfilter.dat: line %d is malformed.", nbLine);
|
||||
qDebug("End IP of the range is malformated: %s", qPrintable(strEndIP));
|
||||
continue;
|
||||
}
|
||||
libtorrent::address endAddr = libtorrent::address::from_string(qPrintable(strEndIP), ec);
|
||||
if(ec) {
|
||||
qDebug("Ipfilter.dat: line %d is malformed.", nbLine);
|
||||
|
@ -197,14 +216,24 @@ public:
|
|||
continue;
|
||||
}
|
||||
boost::system::error_code ec;
|
||||
QString strStartIP = IPs.at(0).trimmed();
|
||||
QString strStartIP = cleanupIPAddress(IPs.at(0));
|
||||
if(strStartIP.isEmpty()) {
|
||||
qDebug("p2p file: line %d is malformed.", nbLine);
|
||||
qDebug("Start IP is invalid: %s", qPrintable(strStartIP));
|
||||
continue;
|
||||
}
|
||||
libtorrent::address startAddr = libtorrent::address::from_string(qPrintable(strStartIP), ec);
|
||||
if(ec) {
|
||||
qDebug("p2p file: line %d is malformed.", nbLine);
|
||||
qDebug("Start IP is invalid: %s", qPrintable(strStartIP));
|
||||
continue;
|
||||
}
|
||||
QString strEndIP = IPs.at(1).trimmed();
|
||||
QString strEndIP = cleanupIPAddress(IPs.at(1));
|
||||
if(strEndIP.isEmpty()) {
|
||||
qDebug("p2p file: line %d is malformed.", nbLine);
|
||||
qDebug("End IP is invalid: %s", qPrintable(strStartIP));
|
||||
continue;
|
||||
}
|
||||
libtorrent::address endAddr = libtorrent::address::from_string(qPrintable(strEndIP), ec);
|
||||
if(ec) {
|
||||
qDebug("p2p file: line %d is malformed.", nbLine);
|
||||
|
|
|
@ -60,7 +60,12 @@ public:
|
|||
~PeerAdditionDlg(){}
|
||||
|
||||
QString getIP() const {
|
||||
return lineIP->text();
|
||||
QHostAddress ip(lineIP->text());
|
||||
if(!ip.isNull()) {
|
||||
// QHostAddress::toString() cleans up the IP for libtorrent
|
||||
return ip.toString();
|
||||
}
|
||||
return QString();
|
||||
}
|
||||
|
||||
unsigned short getPort() const {
|
||||
|
@ -87,8 +92,7 @@ public:
|
|||
|
||||
protected slots:
|
||||
void validateInput() {
|
||||
QHostAddress ip(getIP());
|
||||
if(ip.isNull()) {
|
||||
if(getIP().isEmpty()) {
|
||||
QMessageBox::warning(this, tr("Invalid IP"),
|
||||
tr("The IP you provided is invalid."),
|
||||
QMessageBox::Ok);
|
||||
|
|
Loading…
Reference in a new issue