@ -370,11 +370,16 @@ Session::Session(QObject *parent)
, m_numResumeData ( 0 )
, m_numResumeData ( 0 )
, m_extraLimit ( 0 )
, m_extraLimit ( 0 )
, m_useProxy ( false )
, m_useProxy ( false )
, m_recentErroredTorrentsTimer ( new QTimer ( this ) )
{
{
Logger * const logger = Logger : : instance ( ) ;
Logger * const logger = Logger : : instance ( ) ;
initResumeFolder ( ) ;
initResumeFolder ( ) ;
m_recentErroredTorrentsTimer - > setSingleShot ( true ) ;
m_recentErroredTorrentsTimer - > setInterval ( 1000 ) ;
connect ( m_recentErroredTorrentsTimer , & QTimer : : timeout , this , [ this ] ( ) { m_recentErroredTorrents . clear ( ) ; } ) ;
m_seedingLimitTimer = new QTimer ( this ) ;
m_seedingLimitTimer = new QTimer ( this ) ;
m_seedingLimitTimer - > setInterval ( 10000 ) ;
m_seedingLimitTimer - > setInterval ( 10000 ) ;
connect ( m_seedingLimitTimer , & QTimer : : timeout , this , & Session : : processShareLimits ) ;
connect ( m_seedingLimitTimer , & QTimer : : timeout , this , & Session : : processShareLimits ) ;
@ -4184,10 +4189,15 @@ void Session::handleFileErrorAlert(libt::file_error_alert *p)
// NOTE: Check this function!
// NOTE: Check this function!
TorrentHandle * const torrent = m_torrents . value ( p - > handle . info_hash ( ) ) ;
TorrentHandle * const torrent = m_torrents . value ( p - > handle . info_hash ( ) ) ;
if ( torrent ) {
if ( torrent ) {
QString msg = QString : : fromStdString ( p - > message ( ) ) ;
const InfoHash hash = torrent - > hash ( ) ;
Logger : : instance ( ) - > addMessage ( tr ( " An I/O error occurred, '%1' paused. %2 " )
if ( ! m_recentErroredTorrents . contains ( hash ) ) {
. arg ( torrent - > name ( ) , msg ) ) ;
m_recentErroredTorrents . insert ( hash ) ;
emit fullDiskError ( torrent , msg ) ;
const QString msg = QString : : fromStdString ( p - > message ( ) ) ;
LogMsg ( tr ( " An I/O error occurred, '%1' paused. %2 " ) . arg ( torrent - > name ( ) , msg ) ) ;
emit fullDiskError ( torrent , msg ) ;
}
m_recentErroredTorrentsTimer - > start ( ) ;
}
}
}
}