From 906b0755eb6c4819e03063c1ebec44ea575d6048 Mon Sep 17 00:00:00 2001 From: Christophe Dumez Date: Mon, 22 Nov 2010 17:04:35 +0000 Subject: [PATCH] BUGFIX: Fix SOCKS5 proxy authentication in search engine(closes #680072) --- Changelog | 1 + src/searchengine/nova/socks.py | 2 +- src/searchengine/searchengine.cpp | 6 ++++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/Changelog b/Changelog index be82864e2..e40420113 100644 --- a/Changelog +++ b/Changelog @@ -12,6 +12,7 @@ - FEATURE: Added "Amount downloaded/left" columns to transfer list - FEATURE: Simplified proxy settings - FEATURE: Optimized and improved the peer country resolution code + - BUGFIX: Fix SOCKS5 proxy authentication in search engine(closes #680072) - COSMETIC: Replaced message box by on-screen notification for download errors - COSMETIC: Improved the torrent creation tool appearance - COSMETIC: Use country flags by Mark James (Thanks to Dmytro Pukha) diff --git a/src/searchengine/nova/socks.py b/src/searchengine/nova/socks.py index 7cc1bc34a..b7b7b7ccb 100644 --- a/src/searchengine/nova/socks.py +++ b/src/searchengine/nova/socks.py @@ -187,7 +187,7 @@ class socksocket(socket.socket): elif chosenauth[1] == "\x02": # Okay, we need to perform a basic username/password # authentication. - self.sendall("\x01" + chr(len(self.__proxy[4])) + self.__proxy[4] + chr(len(self.proxy[5])) + self.__proxy[5]) + self.sendall("\x01" + chr(len(self.__proxy[4])) + self.__proxy[4] + chr(len(self.__proxy[5])) + self.__proxy[5]) authstat = self.__recvall(2) if authstat[0] != "\x01": # Bad response diff --git a/src/searchengine/searchengine.cpp b/src/searchengine/searchengine.cpp index edc7e6018..63ad7def6 100644 --- a/src/searchengine/searchengine.cpp +++ b/src/searchengine/searchengine.cpp @@ -519,9 +519,11 @@ void SearchEngine::updateNova() { } filePath = search_dir.absoluteFilePath("socks.py"); - if(!QFile::exists(filePath)) { - QFile::copy(":/nova/socks.py", filePath); + if(QFile::exists(filePath)){ + misc::safeRemove(filePath); + misc::safeRemove(filePath+"c"); } + QFile::copy(":/nova/socks.py", filePath); QDir destDir(QDir(misc::searchEngineLocation()).absoluteFilePath("engines")); QDir shipped_subDir(":/nova/engines/"); QStringList files = shipped_subDir.entryList();