Browse Source

- prevent downloadFromUrl flooding

adaptive-webui-19844
Christophe Dumez 18 years ago
parent
commit
c7592a6dc8
  1. 1
      Changelog
  2. 1
      TODO
  3. 13
      src/downloadThread.h

1
Changelog

@ -50,6 +50,7 @@ @@ -50,6 +50,7 @@
- BUGFIX: Improved incremental download
- BUGFIX: Improved unicode support
- BUGFIX: Made torrent deletion from hard-drive safer
- BUGFIX: Prevent downloadFromUrl flooding
- COSMETIC: Redesigned torrent properties a little
- COSMETIC: Redesigned options a little
- COSMETIC: Display more logs messages concerning features

1
TODO

@ -80,3 +80,4 @@ beta5->beta6 changelog: @@ -80,3 +80,4 @@ beta5->beta6 changelog:
- BUGFIX: Fixed a bug when switching from finished to downloading list
- BUGFIX: Showing checking progress for paused torrents too
- BUGFIX: Fixed progress column sorting on startup
- BUGFIX: Prevent downloadFromUrl flooding

13
src/downloadThread.h

@ -135,6 +135,7 @@ class downloadThread : public QThread { @@ -135,6 +135,7 @@ class downloadThread : public QThread {
private:
QStringList url_list;
QStringList downloading_list;
QMutex mutex;
QWaitCondition condition;
bool abort;
@ -160,7 +161,9 @@ class downloadThread : public QThread { @@ -160,7 +161,9 @@ class downloadThread : public QThread {
void downloadUrl(QString url){
QMutexLocker locker(&mutex);
if(downloading_list.contains(url)) return;
url_list << url;
downloading_list << url;
if(!isRunning()){
start();
}else{
@ -195,6 +198,11 @@ class downloadThread : public QThread { @@ -195,6 +198,11 @@ class downloadThread : public QThread {
subThreads.removeAt(index);
delete st;
emit downloadFinished(url, path);
mutex.lock();
index = downloading_list.indexOf(url);
Q_ASSERT(index != -1);
downloading_list.removeAt(index);
mutex.unlock();
}
void propagateDownloadFailure(subDownloadThread* st, QString url, QString reason){
@ -203,6 +211,11 @@ class downloadThread : public QThread { @@ -203,6 +211,11 @@ class downloadThread : public QThread {
subThreads.removeAt(index);
delete st;
emit downloadFailure(url, reason);
mutex.lock();
index = downloading_list.indexOf(url);
Q_ASSERT(index != -1);
downloading_list.removeAt(index);
mutex.unlock();
}
};

Loading…
Cancel
Save