From 5272f1cba3ee4e298d529c8ea5a0741e3db306bf Mon Sep 17 00:00:00 2001 From: Christophe Dumez Date: Wed, 20 Oct 2010 16:17:11 +0000 Subject: [PATCH] Fix possible crash on manual peer ban --- src/bittorrent.cpp | 2 +- src/filterparserthread.h | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/bittorrent.cpp b/src/bittorrent.cpp index 85ce5412e..753f87960 100644 --- a/src/bittorrent.cpp +++ b/src/bittorrent.cpp @@ -400,7 +400,7 @@ void Bittorrent::configureSession() { std::cout << "HTTP user agent is " << sessionSettings.user_agent << std::endl; addConsoleMessage(tr("HTTP user agent is %1").arg(misc::toQString(sessionSettings.user_agent))); - sessionSettings.upnp_ignore_nonrouters = true; + sessionSettings.upnp_ignore_nonrouters = false; sessionSettings.use_dht_as_fallback = false; // To prevent ISPs from blocking seeding sessionSettings.lazy_bitfields = true; diff --git a/src/filterparserthread.h b/src/filterparserthread.h index e146d5197..ee0107106 100644 --- a/src/filterparserthread.h +++ b/src/filterparserthread.h @@ -407,9 +407,12 @@ class FilterParserThread : public QThread { // First, import current filter ip_filter filter = s->get_ip_filter(); foreach(const QString &ip, IPs) { - qDebug("Manual ban of peer %s", ip.toLocal8Bit().data()); - address_v4 addr = address_v4::from_string(ip.toLocal8Bit().data()); - filter.add_rule(addr, addr, ip_filter::blocked); + qDebug("Manual ban of peer %s", ip.toLocal8Bit().constData()); + boost::system::error_code ec; + address_v4 addr = address_v4::from_string(ip.toLocal8Bit().constData(), ec); + Q_ASSERT(!ec); + if(!ec) + filter.add_rule(addr, addr, ip_filter::blocked); } s->set_ip_filter(filter); }