Skip to content
Snippets Groups Projects
Verified Commit 0c99ef0e authored by akwizgran's avatar akwizgran
Browse files

Clean up some duplicated code.

parent faba9a6b
No related branches found
No related tags found
1 merge request!1082Generate and store handshake key pair at startup if necessary
...@@ -98,9 +98,7 @@ class IdentityManagerImpl implements IdentityManager, OpenDatabaseHook { ...@@ -98,9 +98,7 @@ class IdentityManagerImpl implements IdentityManager, OpenDatabaseHook {
@Override @Override
public void onDatabaseOpened(Transaction txn) throws DbException { public void onDatabaseOpened(Transaction txn) throws DbException {
Account cached = cachedAccount; Account cached = getCachedAccount(txn);
if (cached == null)
cachedAccount = cached = loadAccountWithKeyPair(txn);
if (shouldStoreAccount) { if (shouldStoreAccount) {
db.addAccount(txn, cached); db.addAccount(txn, cached);
LOG.info("Account stored"); LOG.info("Account stored");
...@@ -116,32 +114,32 @@ class IdentityManagerImpl implements IdentityManager, OpenDatabaseHook { ...@@ -116,32 +114,32 @@ class IdentityManagerImpl implements IdentityManager, OpenDatabaseHook {
@Override @Override
public LocalAuthor getLocalAuthor() throws DbException { public LocalAuthor getLocalAuthor() throws DbException {
Account cached = cachedAccount; Account cached = cachedAccount;
if (cached == null) { if (cached == null)
cachedAccount = cached = db.transactionWithResult(true, cached = db.transactionWithResult(true, this::getCachedAccount);
this::loadAccountWithKeyPair);
}
return cached.getLocalAuthor(); return cached.getLocalAuthor();
} }
@Override @Override
public LocalAuthor getLocalAuthor(Transaction txn) throws DbException { public LocalAuthor getLocalAuthor(Transaction txn) throws DbException {
Account cached = cachedAccount; return getCachedAccount(txn).getLocalAuthor();
if (cached == null)
cachedAccount = cached = loadAccountWithKeyPair(txn);
return cached.getLocalAuthor();
} }
@Override @Override
public byte[][] getHandshakeKeys(Transaction txn) throws DbException { public byte[][] getHandshakeKeys(Transaction txn) throws DbException {
Account cached = cachedAccount; Account cached = getCachedAccount(txn);
if (cached == null)
cachedAccount = cached = loadAccountWithKeyPair(txn);
return new byte[][] { return new byte[][] {
cached.getHandshakePublicKey(), cached.getHandshakePublicKey(),
cached.getHandshakePrivateKey() cached.getHandshakePrivateKey()
}; };
} }
private Account getCachedAccount(Transaction txn) throws DbException {
Account cached = cachedAccount;
if (cached == null)
cachedAccount = cached = loadAccountWithKeyPair(txn);
return cached;
}
private Account loadAccountWithKeyPair(Transaction txn) throws DbException { private Account loadAccountWithKeyPair(Transaction txn) throws DbException {
Account a = loadAccount(txn); Account a = loadAccount(txn);
LOG.info("Account loaded"); LOG.info("Account loaded");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment