aboutsummaryrefslogtreecommitdiffstats
path: root/packages/ctorrent/files/stall.patch
diff options
context:
space:
mode:
Diffstat (limited to 'packages/ctorrent/files/stall.patch')
-rw-r--r--packages/ctorrent/files/stall.patch27
1 files changed, 27 insertions, 0 deletions
diff --git a/packages/ctorrent/files/stall.patch b/packages/ctorrent/files/stall.patch
index e69de29bb2..f81f000921 100644
--- a/packages/ctorrent/files/stall.patch
+++ b/packages/ctorrent/files/stall.patch
@@ -0,0 +1,27 @@
+diff --exclude '*Po' -ur ctorrent/peer.cpp ctorrent.new/peer.cpp
+--- ctorrent/peer.cpp 2005-02-10 18:27:44.980091472 +0000
++++ ctorrent.new/peer.cpp 2005-02-03 17:55:01.000000000 +0000
+@@ -252,7 +252,8 @@
+ if( (r - 1) != bitfield.NBytes() || !bitfield.IsEmpty()) return -1;
+ bitfield.SetReferBuffer(msgbuf + 5);
+ if(bitfield.IsFull() && BTCONTENT.pBF->IsFull()) return -2;
+- return 0;
++
++ return RequestCheck();
+
+ case M_CANCEL:
+ if(r != H_CANCEL_LEN || !m_state.remote_interested) return -1;
+diff --exclude '*Po' -ur ctorrent/peerlist.cpp ctorrent.new/peerlist.cpp
+--- ctorrent/peerlist.cpp 2004-09-09 00:10:51.000000000 +0100
++++ ctorrent.new/peerlist.cpp 2005-02-02 00:23:04.000000000 +0000
+@@ -495,7 +496,9 @@
+ if(peer->GetStatus() == P_HANDSHAKE){
+ if( peer->HandShake() < 0 ) peer->CloseConnection();
+ }else{
+- if( peer->RecvModule() < 0 ) peer->CloseConnection();
++ if(peer->GetStatus() == P_SUCCESS) {
++ if( peer->RecvModule() < 0 ) peer->CloseConnection();
++ }
+ }
+ }else if(PEER_IS_SUCCESS(peer) && FD_ISSET(sk,wfdp)){
+ p->click++;