diff --git a/src/base/bittorrent/sessionimpl.cpp b/src/base/bittorrent/sessionimpl.cpp index 5c9775af9..aeaa54698 100644 --- a/src/base/bittorrent/sessionimpl.cpp +++ b/src/base/bittorrent/sessionimpl.cpp @@ -5555,10 +5555,13 @@ void SessionImpl::handleAlert(const lt::alert *a) dispatchTorrentAlert(static_cast(a)); break; case lt::state_update_alert::alert_type: - handleStateUpdateAlert(static_cast(a)); + handleStateUpdateAlert(static_cast(a)); + break; + case lt::session_error_alert::alert_type: + handleSessionErrorAlert(static_cast(a)); break; case lt::session_stats_alert::alert_type: - handleSessionStatsAlert(static_cast(a)); + handleSessionStatsAlert(static_cast(a)); break; case lt::tracker_announce_alert::alert_type: case lt::tracker_error_alert::alert_type: @@ -5567,56 +5570,59 @@ void SessionImpl::handleAlert(const lt::alert *a) handleTrackerAlert(static_cast(a)); break; case lt::file_error_alert::alert_type: - handleFileErrorAlert(static_cast(a)); + handleFileErrorAlert(static_cast(a)); break; case lt::add_torrent_alert::alert_type: // handled separately break; case lt::torrent_removed_alert::alert_type: - handleTorrentRemovedAlert(static_cast(a)); + handleTorrentRemovedAlert(static_cast(a)); break; case lt::torrent_deleted_alert::alert_type: - handleTorrentDeletedAlert(static_cast(a)); + handleTorrentDeletedAlert(static_cast(a)); break; case lt::torrent_delete_failed_alert::alert_type: - handleTorrentDeleteFailedAlert(static_cast(a)); + handleTorrentDeleteFailedAlert(static_cast(a)); break; case lt::portmap_error_alert::alert_type: - handlePortmapWarningAlert(static_cast(a)); + handlePortmapWarningAlert(static_cast(a)); break; case lt::portmap_alert::alert_type: - handlePortmapAlert(static_cast(a)); + handlePortmapAlert(static_cast(a)); break; case lt::peer_blocked_alert::alert_type: - handlePeerBlockedAlert(static_cast(a)); + handlePeerBlockedAlert(static_cast(a)); break; case lt::peer_ban_alert::alert_type: - handlePeerBanAlert(static_cast(a)); + handlePeerBanAlert(static_cast(a)); break; case lt::url_seed_alert::alert_type: - handleUrlSeedAlert(static_cast(a)); + handleUrlSeedAlert(static_cast(a)); break; case lt::listen_succeeded_alert::alert_type: - handleListenSucceededAlert(static_cast(a)); + handleListenSucceededAlert(static_cast(a)); break; case lt::listen_failed_alert::alert_type: - handleListenFailedAlert(static_cast(a)); + handleListenFailedAlert(static_cast(a)); break; case lt::external_ip_alert::alert_type: - handleExternalIPAlert(static_cast(a)); + handleExternalIPAlert(static_cast(a)); break; case lt::alerts_dropped_alert::alert_type: handleAlertsDroppedAlert(static_cast(a)); break; case lt::storage_moved_alert::alert_type: - handleStorageMovedAlert(static_cast(a)); + handleStorageMovedAlert(static_cast(a)); break; case lt::storage_moved_failed_alert::alert_type: - handleStorageMovedFailedAlert(static_cast(a)); + handleStorageMovedFailedAlert(static_cast(a)); break; case lt::socks5_alert::alert_type: handleSocks5Alert(static_cast(a)); break; + case lt::i2p_alert::alert_type: + handleI2PAlert(static_cast(a)); + break; #ifdef QBT_USES_LIBTORRENT2 case lt::torrent_conflict_alert::alert_type: handleTorrentConflictAlert(static_cast(a)); @@ -5923,6 +5929,12 @@ void SessionImpl::handleExternalIPAlert(const lt::external_ip_alert *p) } } +void SessionImpl::handleSessionErrorAlert(const lt::session_error_alert *p) const +{ + LogMsg(tr("BitTorrent session encountered a serious error. Reason: \"%1\"") + .arg(QString::fromStdString(p->message())), Log::CRITICAL); +} + void SessionImpl::handleSessionStatsAlert(const lt::session_stats_alert *p) { if (m_refreshEnqueued) @@ -6117,6 +6129,15 @@ void SessionImpl::handleSocks5Alert(const lt::socks5_alert *p) const } } +void SessionImpl::handleI2PAlert(const lt::i2p_alert *p) const +{ + if (p->error) + { + LogMsg(tr("I2P error. Message: \"%1\".") + .arg(QString::fromStdString(p->message())), Log::WARNING); + } +} + void SessionImpl::handleTrackerAlert(const lt::tracker_alert *a) { TorrentImpl *torrent = m_torrents.value(a->handle.info_hash()); diff --git a/src/base/bittorrent/sessionimpl.h b/src/base/bittorrent/sessionimpl.h index f75879019..a8c1f967b 100644 --- a/src/base/bittorrent/sessionimpl.h +++ b/src/base/bittorrent/sessionimpl.h @@ -564,11 +564,13 @@ namespace BitTorrent void handleListenSucceededAlert(const lt::listen_succeeded_alert *p); void handleListenFailedAlert(const lt::listen_failed_alert *p); void handleExternalIPAlert(const lt::external_ip_alert *p); + void handleSessionErrorAlert(const lt::session_error_alert *p) const; void handleSessionStatsAlert(const lt::session_stats_alert *p); void handleAlertsDroppedAlert(const lt::alerts_dropped_alert *p) const; void handleStorageMovedAlert(const lt::storage_moved_alert *p); void handleStorageMovedFailedAlert(const lt::storage_moved_failed_alert *p); void handleSocks5Alert(const lt::socks5_alert *p) const; + void handleI2PAlert(const lt::i2p_alert *p) const; void handleTrackerAlert(const lt::tracker_alert *a); #ifdef QBT_USES_LIBTORRENT2 void handleTorrentConflictAlert(const lt::torrent_conflict_alert *a);