diff --git a/apps/i2psnark/java/src/org/klomp/snark/PeerState.java b/apps/i2psnark/java/src/org/klomp/snark/PeerState.java index 378cd8758c94dbed20080b2fc6e2fd40c1ffe4b0..2fa597ce5135c0c78ee367b0abdfc37c0a5dc347 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/PeerState.java +++ b/apps/i2psnark/java/src/org/klomp/snark/PeerState.java @@ -152,7 +152,16 @@ class PeerState // XXX - Check for weird bitfield and disconnect? bitfield = new BitField(bitmap, metainfo.getPieces()); } - setInteresting(listener.gotBitField(peer, bitfield)); + boolean interest = listener.gotBitField(peer, bitfield); + setInteresting(interest); + if (bitfield.complete() && !interest) { + // They are seeding and we are seeding, + // why did they contact us? (robert) + // Dump them quick before we send our whole bitmap + if (_log.shouldLog(Log.WARN)) + _log.warn("Disconnecting seed that connects to seeds" + peer); + peer.disconnect(true); + } } void requestMessage(int piece, int begin, int length)