Browse Source

- Check if the hash read from the filename and from the torrent are the same and don't add it if it is different. Safer

adaptive-webui-19844
Christophe Dumez 17 years ago
parent
commit
28294efadf
  1. 17
      src/bittorrent.cpp

17
src/bittorrent.cpp

@ -370,17 +370,11 @@ void bittorrent::addTorrent(QString path, bool fromScanDir, QString from_url) { @@ -370,17 +370,11 @@ void bittorrent::addTorrent(QString path, bool fromScanDir, QString from_url) {
qDebug(" -> Hash: %s", misc::toString(t.info_hash()).c_str());
qDebug(" -> Name: %s", t.name().c_str());
QString hash = misc::toQString(t.info_hash());
if(s->find_torrent(t.info_hash()).is_valid()) {
qDebug("/!\\ Torrent is already in download list");
// Update info Bar
if(!fromScanDir) {
if(file.startsWith(torrentBackup.path())){
// Torrent hash has changed. This should not be possible but...
// XXX: Why does this happen sometimes?
if(file.startsWith(torrentBackup.path())) {
QFileInfo fi(file);
QString old_hash = fi.baseName();
qDebug("Strange, hash changed from %s to %s", old_hash.toUtf8().data(), hash.toUtf8().data());
Q_ASSERT(old_hash != hash);
if(old_hash != hash){
qDebug("* ERROR: Strange, hash changed from %s to %s", old_hash.toUtf8().data(), hash.toUtf8().data());
QStringList filters;
filters << old_hash+".*";
QStringList files = torrentBackup.entryList(filters, QDir::Files, QDir::Unsorted);
@ -391,6 +385,11 @@ void bittorrent::addTorrent(QString path, bool fromScanDir, QString from_url) { @@ -391,6 +385,11 @@ void bittorrent::addTorrent(QString path, bool fromScanDir, QString from_url) {
}
return;
}
}
if(s->find_torrent(t.info_hash()).is_valid()) {
qDebug("/!\\ Torrent is already in download list");
// Update info Bar
if(!fromScanDir) {
if(!from_url.isNull()) {
// If download from url, remove temp file
QFile::remove(file);

Loading…
Cancel
Save