NetDB: Mark ls2 received via garlic as blinded if bit 2 set in flags

This commit is contained in:
zzz
2019-07-22 15:35:07 +00:00
parent 365820172a
commit 885e0468b2

View File

@ -952,7 +952,8 @@ public abstract class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacad
}
EncryptedLeaseSet encls = null;
if (leaseSet.getType() == DatabaseEntry.KEY_TYPE_ENCRYPTED_LS2) {
int type = leaseSet.getType();
if (type == DatabaseEntry.KEY_TYPE_ENCRYPTED_LS2) {
// set dest or key before validate() calls verifySignature() which
// will do the decryption
encls = (EncryptedLeaseSet) leaseSet;
@ -998,6 +999,14 @@ public abstract class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacad
store(dest.getHash(), decls);
_blindCache.setBlinded(dest);
}
} else if (type == DatabaseEntry.KEY_TYPE_LS2 || type == DatabaseEntry.KEY_TYPE_META_LS2) {
// if it came in via garlic
LeaseSet2 ls2 = (LeaseSet2) leaseSet;
if (ls2.isBlindedWhenPublished()) {
Destination dest = leaseSet.getDestination();
if (dest != null)
_blindCache.setBlinded(dest, null, null);
}
}
// Iterate through the old failure / success count, copying over the old