[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    extragear/network/ktorrent/libbtcore
From:       Joris Guisson <joris.guisson () gmail ! com>
Date:       2009-09-05 10:11:35
Message-ID: 1252145495.330911.26624.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 1020083 by guisson:

Ditch QHostAgent due to the thread hanging at exit in favor of home grown ReverseResolver

 M  +2 -0      CMakeLists.txt  
 A             net/reverseresolver.cpp   [License: GPL (v2+)]
 A             net/reverseresolver.h   [License: GPL (v2+)]
 M  +8 -6      peer/peer.cpp  
 M  +1 -2      peer/peer.h  
 M  +4 -1      torrent/globals.cpp  


--- trunk/extragear/network/ktorrent/libbtcore/CMakeLists.txt #1020082:1020083
@@ -68,6 +68,7 @@
 	net/socketgroup.cpp
 	net/socks.cpp
 	net/wakeuppipe.cpp
+	net/reverseresolver.cpp
 	
 	mse/bigint.cpp  
 	mse/functions.cpp  
@@ -215,6 +216,7 @@
 	./net/speed.h
 	./net/uploadthread.h
 	./net/socketmonitor.h
+	./net/reverseresolver.h
 )
 
 set (mse_HDR 
--- trunk/extragear/network/ktorrent/libbtcore/peer/peer.cpp #1020082:1020083
@@ -37,6 +37,7 @@
 #include "peeruploader.h"
 #include "utpex.h"
 #include "peermanager.h"
+#include <net/reverseresolver.h>
 
 using namespace net;
 
@@ -101,7 +102,11 @@
 		utorrent_pex_id = 0;
 		
 		if (resolve_hostname)
-			QHostInfo::lookupHost(stats.ip_address,this,SLOT(resolved(QHostInfo)));
+		{
+			net::ReverseResolver* res = new net::ReverseResolver();
+			connect(res,SIGNAL(resolved(QString)),this,SLOT(resolved(QString)),Qt::QueuedConnection);
+			res->resolveAsync(sock->getRemoteAddress());
+		}
 	}
 
 
@@ -599,12 +604,9 @@
 		sock->setGroupIDs(up_gid,down_gid);
 	}
 		
-	void Peer::resolved(const QHostInfo& hinfo)
+	void Peer::resolved(const QString & hinfo)
 	{
-		if (hinfo.error() != QHostInfo::NoError)
-			return;
-		
-		stats.hostname = hinfo.hostName();
+		stats.hostname = hinfo;
 	}
 	
 	void Peer::setResolveHostnames(bool on)
--- trunk/extragear/network/ktorrent/libbtcore/peer/peer.h #1020082:1020083
@@ -22,7 +22,6 @@
 
 #include <QObject>
 #include <QDateTime>
-#include <QHostInfo>
 #include <util/timer.h>
 #include <interfaces/peerinterface.h>
 #include <util/bitset.h>
@@ -235,7 +234,7 @@
 		static void setResolveHostnames(bool on);
 		
 	private slots:
-		void resolved(const QHostInfo & hinfo);
+		void resolved(const QString & hinfo);
 		
 	private:
 		void packetReady(const Uint8* packet,Uint32 size);
--- trunk/extragear/network/ktorrent/libbtcore/torrent/globals.cpp #1020082:1020083
@@ -21,9 +21,10 @@
 
 #include <net/portlist.h>
 #include <dht/dht.h>
-
+#include <net/reverseresolver.h>
 #include "server.h"
 
+
 namespace bt
 {	
 
@@ -38,6 +39,8 @@
 
 	Globals::~ Globals()
 	{
+		// shutdown the reverse resolver thread
+		net::ReverseResolver::shutdown();
 		delete server;
 		delete dh_table;
 		delete plist;
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic