mirror of
https://code.briarproject.org/briar/briar.git
synced 2026-02-16 12:49:55 +01:00
Remove dead secrets from the connection recogniser.
This commit is contained in:
@@ -76,8 +76,8 @@ class KeyManagerImpl extends TimerTask implements KeyManager, DatabaseListener {
|
|||||||
try {
|
try {
|
||||||
// Store any secrets that have been created
|
// Store any secrets that have been created
|
||||||
if(!created.isEmpty()) db.addSecrets(created);
|
if(!created.isEmpty()) db.addSecrets(created);
|
||||||
// Pass the current incoming secrets to the connection recogniser
|
// Pass the current incoming secrets to the recogniser
|
||||||
// FIXME: This uses a separate database transaction for each secret
|
// FIXME: This uses a separate database transaction per secret
|
||||||
for(TemporarySecret s : incomingOld.values())
|
for(TemporarySecret s : incomingOld.values())
|
||||||
recogniser.addSecret(s);
|
recogniser.addSecret(s);
|
||||||
for(TemporarySecret s : incomingNew.values())
|
for(TemporarySecret s : incomingNew.values())
|
||||||
@@ -237,19 +237,25 @@ class KeyManagerImpl extends TimerTask implements KeyManager, DatabaseListener {
|
|||||||
// Work out what phase of its lifecycle each secret is in
|
// Work out what phase of its lifecycle each secret is in
|
||||||
long now = System.currentTimeMillis();
|
long now = System.currentTimeMillis();
|
||||||
Collection<TemporarySecret> dead = assignSecretsToMaps(now, secrets);
|
Collection<TemporarySecret> dead = assignSecretsToMaps(now, secrets);
|
||||||
|
// Remove any dead secrets from the recogniser
|
||||||
|
for(TemporarySecret s : dead) {
|
||||||
|
ContactId c = s.getContactId();
|
||||||
|
TransportId t = s.getTransportId();
|
||||||
|
long period = s.getPeriod();
|
||||||
|
recogniser.removeSecret(c, t, period);
|
||||||
|
}
|
||||||
// Replace any dead secrets
|
// Replace any dead secrets
|
||||||
Collection<TemporarySecret> created = replaceDeadSecrets(now, dead);
|
Collection<TemporarySecret> created = replaceDeadSecrets(now, dead);
|
||||||
try {
|
if(!created.isEmpty()) {
|
||||||
// Store any secrets that have been created
|
try {
|
||||||
if(!created.isEmpty()) db.addSecrets(created);
|
// Store any secrets that have been created
|
||||||
// Pass the current incoming secrets to the connection recogniser
|
db.addSecrets(created);
|
||||||
// FIXME: This uses a separate database transaction for each secret
|
// Pass any secrets that have been created to the recogniser
|
||||||
for(TemporarySecret s : incomingOld.values())
|
// FIXME: This uses a separate database transaction per secret
|
||||||
recogniser.addSecret(s);
|
for(TemporarySecret s : created) recogniser.addSecret(s);
|
||||||
for(TemporarySecret s : incomingNew.values())
|
} catch(DbException e) {
|
||||||
recogniser.addSecret(s);
|
if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.toString());
|
||||||
} catch(DbException e) {
|
}
|
||||||
if(LOG.isLoggable(Level.WARNING)) LOG.warning(e.toString());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user