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;