forked from I2P_Developers/i2p.i2p
- Prevent torrent shutdown when changing file priority to skip
This commit is contained in:
@ -424,13 +424,22 @@ public class MetaInfo
|
||||
}
|
||||
|
||||
/**
|
||||
* @return good
|
||||
* @since 0.9.1
|
||||
*/
|
||||
boolean checkPiece(PartialPiece pp) throws IOException {
|
||||
boolean checkPiece(PartialPiece pp) {
|
||||
MessageDigest sha1 = SHA1.getInstance();
|
||||
int piece = pp.getPiece();
|
||||
|
||||
byte[] hash = pp.getHash();
|
||||
byte[] hash;
|
||||
try {
|
||||
hash = pp.getHash();
|
||||
} catch (IOException ioe) {
|
||||
// Could be caused by closing a peer connnection
|
||||
// we don't want the exception to propagate through
|
||||
// to Storage.putPiece()
|
||||
_log.warn("Error checking", ioe);
|
||||
return false;
|
||||
}
|
||||
for (int i = 0; i < 20; i++)
|
||||
if (hash[i] != piece_hashes[20 * piece + i])
|
||||
return false;
|
||||
|
@ -308,6 +308,7 @@ class PeerState implements DataLoader
|
||||
+ peer);
|
||||
|
||||
// Last chunk needed for this piece?
|
||||
// FIXME if priority changed to skip, we will think we're done when we aren't
|
||||
if (getFirstOutstandingRequest(req.getPiece()) == -1)
|
||||
{
|
||||
// warning - may block here for a while
|
||||
|
Reference in New Issue
Block a user