File libktorrent-1.1beta1-sprseedcrash.patch of Package libktorrent

index fd5084d..42a2138 100644
Index: src/peer/peermanager.cpp
===================================================================
--- src/peer/peermanager.cpp.orig	2010-12-30 14:38:17.000000000 +0200
+++ src/peer/peermanager.cpp	2011-01-15 16:01:48.761678784 +0200
@@ -430,6 +430,8 @@ namespace bt
 			delete d->superseeder;
 			d->superseeder = 0;
 		}
+
+		closeAllConnections();
 	}
 
 	Peer* PeerManager::findPeer(Uint32 peer_id)
@@ -548,6 +550,7 @@ namespace bt
 	
 	void PeerManager::setSuperSeeding(bool on,const BitSet & chunks)
 	{
+		Q_UNUSED(chunks);
 		if ((d->superseeder && on) || (!d->superseeder && !on))
 			return;
 		
@@ -571,9 +574,8 @@ namespace bt
 			pp.port = addr.port();
 			pp.local = false;
 			d->potential_peers.insert(std::make_pair(pp.ip,pp));
+			p->kill();
 		}
-		
-		closeAllConnections();
 	}
 	
 	void PeerManager::allowChunk(PeerInterface* peer, Uint32 chunk)
Index: src/torrent/torrentcontrol.cpp
===================================================================
--- src/torrent/torrentcontrol.cpp.orig	2010-12-30 14:38:17.000000000 +0200
+++ src/torrent/torrentcontrol.cpp	2011-01-15 16:03:44.113678723 +0200
@@ -496,8 +496,6 @@ namespace bt
 		
 		pman->savePeerList(tordir + "peer_list");
 		pman->stop();
-		pman->closeAllConnections();
-		pman->clearDeadPeers();
 		cman->stop();
 		
 		stats.running = false;
openSUSE Build Service is sponsored by