get rid of get account calls for update peers

This commit is contained in:
crn4
2025-10-02 11:55:43 +02:00
parent 2ac0da6cac
commit f20a1b3328
4 changed files with 9 additions and 33 deletions

View File

@@ -2162,15 +2162,11 @@ func (am *DefaultAccountManager) UpdatePeerIP(ctx context.Context, accountID, us
}
if updateNetworkMap {
account, err := am.Store.GetAccountByPeerID(ctx, peerID)
if err != nil {
return err
}
peer, err := am.Store.GetPeerByID(ctx, store.LockingStrengthNone, accountID, peerID)
if err != nil {
return err
}
am.updatePeerInNetworkMapCache(account, peer)
am.updatePeerInNetworkMapCache(peer.AccountID, peer)
am.BufferUpdateAccountPeers(ctx, accountID)
}
return nil

View File

@@ -39,8 +39,8 @@ func (am *DefaultAccountManager) onPeerDeletedUpdNetworkMapCache(account *types.
return account.OnPeerDeletedUpdNetworkMapCache(peerId)
}
func (am *DefaultAccountManager) updatePeerInNetworkMapCache(account *types.Account, peer *nbpeer.Peer) {
am.enrichAccountFromHolder(account)
func (am *DefaultAccountManager) updatePeerInNetworkMapCache(accountId string, peer *nbpeer.Peer) {
account := am.getAccountFromHolder(accountId)
account.UpdatePeerInNetworkMapCache(peer)
}
@@ -51,7 +51,7 @@ func (am *DefaultAccountManager) recalculateNetworkMapCache(account *types.Accou
func (am *DefaultAccountManager) RecalculateNetworkMapCache(ctx context.Context, accountId string) error {
if am.expNewNetworkMap {
account, err := am.Store.GetAccount(ctx, accountId)
account, err := am.requestBuffer.GetAccountWithBackpressure(ctx, accountId)
if err != nil {
return err
}

View File

@@ -146,11 +146,7 @@ func (am *DefaultAccountManager) MarkPeerConnected(ctx context.Context, peerPubK
if expired {
if am.expNewNetworkMap {
account, err := am.Store.GetAccountByPeerID(ctx, peer.ID)
if err != nil {
return err
}
am.updatePeerInNetworkMapCache(account, peer)
am.updatePeerInNetworkMapCache(peer.AccountID, peer)
}
// we need to update other peers because when peer login expires all other peers are notified to disconnect from
// the expired one. Here we notify them that connection is now allowed again.
@@ -329,11 +325,7 @@ func (am *DefaultAccountManager) UpdatePeer(ctx context.Context, accountID, user
}
if am.expNewNetworkMap {
account, err := am.Store.GetAccount(ctx, accountID)
if err != nil {
return nil, err
}
am.updatePeerInNetworkMapCache(account, peer)
am.updatePeerInNetworkMapCache(peer.AccountID, peer)
}
if peerLabelChanged || requiresPeerUpdates {
@@ -834,11 +826,7 @@ func (am *DefaultAccountManager) SyncPeer(ctx context.Context, sync types.PeerSy
if isStatusChanged || sync.UpdateAccountPeers || (updated && (len(postureChecks) > 0 || versionChanged)) {
if am.expNewNetworkMap {
account, err := am.Store.GetAccountByPeerID(ctx, peer.ID)
if err != nil {
return nil, nil, nil, err
}
am.updatePeerInNetworkMapCache(account, peer)
am.updatePeerInNetworkMapCache(peer.AccountID, peer)
}
am.BufferUpdateAccountPeers(ctx, accountID)
}
@@ -966,11 +954,7 @@ func (am *DefaultAccountManager) LoginPeer(ctx context.Context, login types.Peer
if updateRemotePeers || isStatusChanged || (isPeerUpdated && len(postureChecks) > 0) {
if am.expNewNetworkMap {
account, err := am.Store.GetAccountByPeerID(ctx, peer.ID)
if err != nil {
return nil, nil, nil, err
}
am.updatePeerInNetworkMapCache(account, peer)
am.updatePeerInNetworkMapCache(peer.AccountID, peer)
}
am.BufferUpdateAccountPeers(ctx, accountID)
}

View File

@@ -937,10 +937,6 @@ func (am *DefaultAccountManager) expireAndUpdatePeers(ctx context.Context, accou
}
dnsDomain := am.GetDNSDomain(settings)
account, err := am.Store.GetAccount(ctx, accountID)
if err != nil {
return err
}
var peerIDs []string
for _, peer := range peers {
// nolint:staticcheck
@@ -967,7 +963,7 @@ func (am *DefaultAccountManager) expireAndUpdatePeers(ctx context.Context, accou
)
if am.expNewNetworkMap {
am.updatePeerInNetworkMapCache(account, peer)
am.updatePeerInNetworkMapCache(peer.AccountID, peer)
}
}