Package: ktorrent
Version: 4.3.1-2
Severity: normal
Tags: upstream patch

Hi,

Please see attached patch this fixes the bug described at: 
https://bugs.kde.org/show_bug.cgi?id=315239 
.. This bug prevents the block lists in KTorrent from updating correctly.

Kitty

-- System Information:
Debian Release: jessie/sid
  APT prefers testing
  APT policy: (750, 'testing'), (700, 'testing'), (650, 'stable'), (600, 
'stable'), (450, 'oldstable'), (400, 'oldstable'), (300, 'unstable'), (200, 
'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.14-2-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages ktorrent depends on:
ii  kde-runtime         4:4.14.1-1+b1
ii  ktorrent-data       4.3.1-2
ii  libc6               2.19-12
ii  libgcc1             1:4.9.1-16
ii  libgeoip1           1.6.2-1
ii  libkcmutils4        4:4.14.1-1+b1
ii  libkdecore5         4:4.14.1-1+b1
ii  libkdeui5           4:4.14.1-1+b1
ii  libkdewebkit5       4:4.14.1-1+b1
ii  libkdnssd4          4:4.14.1-1+b1
ii  libkio5             4:4.14.1-1+b1
ii  libknotifyconfig4   4:4.14.1-1+b1
ii  libkparts4          4:4.14.1-1+b1
ii  libkrosscore4       4:4.14.1-1+b1
ii  libktorrent-l10n    1.3.1-3
ii  libktorrent5        1.3.1-3+b1
ii  libkworkspace4abi2  4:4.11.12-2+b1
ii  libnepomuk4         4:4.14.1-1+b1
ii  libnepomukutils4    4:4.14.1-1+b1
ii  libphonon4          4:4.8.0-3
ii  libqt4-dbus         4:4.8.6+git64-g5dc8b2b+dfsg-2+b1
ii  libqt4-network      4:4.8.6+git64-g5dc8b2b+dfsg-2+b1
ii  libqt4-qt3support   4:4.8.6+git64-g5dc8b2b+dfsg-2+b1
ii  libqt4-script       4:4.8.6+git64-g5dc8b2b+dfsg-2+b1
ii  libqt4-sql          4:4.8.6+git64-g5dc8b2b+dfsg-2+b1
ii  libqt4-svg          4:4.8.6+git64-g5dc8b2b+dfsg-2+b1
ii  libqt4-xml          4:4.8.6+git64-g5dc8b2b+dfsg-2+b1
ii  libqtcore4          4:4.8.6+git64-g5dc8b2b+dfsg-2+b1
ii  libqtgui4           4:4.8.6+git64-g5dc8b2b+dfsg-2+b1
ii  libqtwebkit4        2.3.4.dfsg-3
ii  libsolid4           4:4.14.1-1+b1
ii  libsoprano4         2.9.4+dfsg-1.1
ii  libstdc++6          4.9.1-16
ii  libsyndication4     4:4.14.1-1
ii  libtag1c2a          1.9.1-2.1
ii  phonon              4:4.8.0-3

ktorrent recommends no packages.

Versions of packages ktorrent suggests:
ii  krosspython             4:4.13.1-1
pn  plasma-widget-ktorrent  <none>

-- no debconf information
--- a/plugins/ipfilter/downloadandconvertjob.cpp	2013-01-15 04:12:24.000000000 +1100
+++ b/plugins/ipfilter/downloadandconvertjob.cpp	2014-10-25 02:22:58.300536134 +1100
@@ -94,7 +94,7 @@
 		active_job = 0;
 		if (j->error())
 		{
-			Out(SYS_IPF|LOG_NOTICE) << "IP filter update failed: " << j->errorString() << endl;
+			Out(SYS_IPF | LOG_NOTICE) << "IP filter update failed: " << j->errorString() << endl;
 			if (mode == Verbose)
 			{
 				((KIO::Job*)j)->ui()->showErrorMessage();
@@ -104,31 +104,54 @@
 				QString msg = i18n("Automatic update of IP filter failed: %1", j->errorString());
 				notification(msg);
 			}
-			
-			setError(DOWNLOAD_FAILED); 
+
+			setError(DOWNLOAD_FAILED);
 			emitResult();
 			return;
 		}
-		
+
 		QString temp = kt::DataDir() + "tmp-" + url.fileName();
-		
+
 		//now determine if it's ZIP or TXT file
-		KMimeType::Ptr ptr = KMimeType::findByPath(temp);
-		if (ptr->name() == "application/zip")
+		KMimeType::Ptr ptr = KMimeType::findByFileContent(temp);
+		Out(SYS_IPF|LOG_NOTICE) << "Mimetype: " << ptr->name() << endl;
+		if(ptr->name() == "application/zip")
+		{
+			active_job = KIO::file_move(temp, QString(kt::DataDir() + QLatin1String("level1.zip")), -1, KIO::HideProgressInfo | KIO::Overwrite);
+			connect(active_job, SIGNAL(result(KJob*)), this, SLOT(extract(KJob*)));
+		}
+		else if(ptr->name() == "application/x-7z-compressed")
 		{
-			active_job = KIO::file_move(temp,QString(kt::DataDir() + QLatin1String("level1.zip")),-1,KIO::HideProgressInfo|KIO::Overwrite);
-			connect(active_job,SIGNAL(result(KJob*)),this,SLOT(extract(KJob*)));
+			QString msg = i18n("7z files are not supported", url.prettyUrl());
+			if (mode == Verbose)
+				KMessageBox::error(0, msg);
+			else
+				notification(msg);
+			
+			setError(UNZIP_FAILED);
+			emitResult();
 		}
-		else if (ptr->name() == "application/x-gzip" || ptr->name() == "application/x-bzip")
+		else if(ptr->name() == "application/gzip" || ptr->name() == "application/x-bzip")
 		{
-			active_job = new bt::DecompressFileJob(temp,QString(kt::DataDir() + "level1.txt"));
-			connect(active_job,SIGNAL(result(KJob*)),this,SLOT(convert(KJob*)));
+			active_job = new bt::DecompressFileJob(temp, QString(kt::DataDir() + "level1.txt"));
+			connect(active_job, SIGNAL(result(KJob*)), this, SLOT(convert(KJob*)));
 			active_job->start();
 		}
+		else if(!KMimeType::isBinaryData(temp) || ptr->name() == "text/plain")
+		{
+			active_job = KIO::file_move(temp, QString(kt::DataDir() + "level1.txt"), -1, KIO::HideProgressInfo | KIO::Overwrite);
+			connect(active_job, SIGNAL(result(KJob*)), this, SLOT(convert(KJob*)));
+		}
 		else
 		{
-			active_job = KIO::file_move(temp,QString(kt::DataDir() + "level1.txt"),-1, KIO::HideProgressInfo|KIO::Overwrite);
-			connect(active_job,SIGNAL(result(KJob*)),this,SLOT(convert(KJob*)));
+			QString msg = i18n("Cannot determine file type of <b>%1</b>", url.prettyUrl());
+			if (mode == Verbose)
+				KMessageBox::error(0, msg);
+			else
+				notification(msg);
+
+			setError(UNZIP_FAILED);
+			emitResult();
 		}
 	}
 	

Reply via email to