Browse Source

Don't respond with a file list for a transaction that is outside of our storage policy, even if we do have a copy of the file at the time of the request.

qdn
CalDescent 3 years ago
parent
commit
e50fd786da
  1. 10
      src/main/java/org/qortal/controller/arbitrary/ArbitraryDataManager.java

10
src/main/java/org/qortal/controller/arbitrary/ArbitraryDataManager.java

@ -587,6 +587,9 @@ public class ArbitraryDataManager extends Thread {
ArbitraryTransactionData transactionData = (ArbitraryTransactionData)repository.getTransactionRepository().fromSignature(signature);
if (transactionData instanceof ArbitraryTransactionData) {
// Check if we're even allowed to serve data for this transaction
if (ArbitraryDataStorageManager.getInstance().shouldStoreDataForName(transactionData.getName())) {
byte[] hash = transactionData.getData();
byte[] chunkHashes = transactionData.getChunkHashes();
@ -598,19 +601,18 @@ public class ArbitraryDataManager extends Thread {
if (chunk.exists()) {
hashes.add(chunk.getHash());
//LOGGER.info("Added hash {}", chunk.getHash58());
}
else {
} else {
LOGGER.info("Couldn't add hash {} because it doesn't exist", chunk.getHash58());
}
}
}
else {
} else {
// This transaction has no chunks, so include the complete file if we have it
if (arbitraryDataFile.exists()) {
hashes.add(arbitraryDataFile.getHash());
}
}
}
}
} catch (DataException e) {
LOGGER.error(String.format("Repository issue while fetching arbitrary file list for peer %s", peer), e);

Loading…
Cancel
Save