mirror of
https://github.com/d47081/qBittorrent.git
synced 2025-01-30 08:24:22 +00:00
Improved hostname resolution code
This commit is contained in:
parent
354d968a94
commit
105de3161a
@ -187,8 +187,8 @@ void PeerListWidget::showPeerListMenu(QPoint) {
|
|||||||
void PeerListWidget::banSelectedPeers(QStringList peer_ips) {
|
void PeerListWidget::banSelectedPeers(QStringList peer_ips) {
|
||||||
// Confirm first
|
// Confirm first
|
||||||
int ret = QMessageBox::question(this, tr("Are you sure? -- qBittorrent"), tr("Are you sure you want to ban permanently the selected peers?"),
|
int ret = QMessageBox::question(this, tr("Are you sure? -- qBittorrent"), tr("Are you sure you want to ban permanently the selected peers?"),
|
||||||
tr("&Yes"), tr("&No"),
|
tr("&Yes"), tr("&No"),
|
||||||
QString(), 0, 1);
|
QString(), 0, 1);
|
||||||
if(ret) return;
|
if(ret) return;
|
||||||
foreach(const QString &ip, peer_ips) {
|
foreach(const QString &ip, peer_ips) {
|
||||||
qDebug("Banning peer %s...", ip.toLocal8Bit().data());
|
qDebug("Banning peer %s...", ip.toLocal8Bit().data());
|
||||||
@ -313,7 +313,8 @@ void PeerListWidget::loadPeers(const QTorrentHandle &h, bool force_hostname_reso
|
|||||||
if(host.isNull()) {
|
if(host.isNull()) {
|
||||||
resolver->resolve(peer.ip);
|
resolver->resolve(peer.ip);
|
||||||
} else {
|
} else {
|
||||||
peerItems.value(peer_ip)->setData(host);
|
qDebug("Got peer IP from cache");
|
||||||
|
handleResolved(peer_ip, host);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -394,6 +395,8 @@ void PeerListWidget::updatePeer(QString ip, peer_info peer) {
|
|||||||
void PeerListWidget::handleResolved(QString ip, QString hostname) {
|
void PeerListWidget::handleResolved(QString ip, QString hostname) {
|
||||||
QStandardItem *item = peerItems.value(ip, 0);
|
QStandardItem *item = peerItems.value(ip, 0);
|
||||||
if(item) {
|
if(item) {
|
||||||
|
qDebug("Resolved %s -> %s", qPrintable(ip), qPrintable(hostname));
|
||||||
item->setData(hostname);
|
item->setData(hostname);
|
||||||
|
//listModel->setData(listModel->index(item->row(), IP), hostname);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -83,10 +83,16 @@ signals:
|
|||||||
protected:
|
protected:
|
||||||
void run() {
|
void run() {
|
||||||
try {
|
try {
|
||||||
libtorrent::asio::ip::tcp::resolver::iterator it = resolver.resolve(ip);
|
boost::system::error_code ec;
|
||||||
if(stopped) return;
|
libtorrent::asio::ip::tcp::resolver::iterator it = resolver.resolve(ip, ec);
|
||||||
libtorrent::asio::ip::tcp::endpoint endpoint = *it;
|
if(ec || stopped) return;
|
||||||
emit ip_resolved(misc::toQString(endpoint.address().to_string()), misc::toQString((*it).host_name()));
|
const std::string ip_str = ip.address().to_string(ec);
|
||||||
|
if(ec) return;
|
||||||
|
const QString host_name = misc::toQString(it->host_name());
|
||||||
|
const QString ip_qstr = misc::toQString(ip_str);
|
||||||
|
if(host_name != ip_qstr) {
|
||||||
|
emit ip_resolved(ip_qstr, host_name);
|
||||||
|
}
|
||||||
} catch(std::exception/* &e*/) {
|
} catch(std::exception/* &e*/) {
|
||||||
/*std::cerr << "Hostname resolution failed, reason: " << e.what() << std::endl;*/
|
/*std::cerr << "Hostname resolution failed, reason: " << e.what() << std::endl;*/
|
||||||
std::cerr << "Hostname resolution error." << std::endl;
|
std::cerr << "Hostname resolution error." << std::endl;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user