diff --git a/internal/processing/common/account.go b/internal/processing/common/account.go index 9a39ea26d..c0daf647d 100644 --- a/internal/processing/common/account.go +++ b/internal/processing/common/account.go @@ -61,13 +61,22 @@ func (p *Processor) GetTargetAccountBy( } if requester != nil && visible { - // Ensure the account is up-to-date. - p.federator.RefreshAccountAsync(ctx, + // Only refresh account if visible to requester, + // and there is *authorized* requester to prevent + // a possible DOS vector for unauthorized clients. + latest, _, err := p.federator.RefreshAccount(ctx, requester.Username, target, nil, nil, ) + if err != nil { + log.Errorf(ctx, "error refreshing target %s: %v", target.URI, err) + return target, visible, nil + } + + // Set latest. + target = latest } return target, visible, nil diff --git a/internal/processing/common/status.go b/internal/processing/common/status.go index 2ffc90035..cce1967b9 100644 --- a/internal/processing/common/status.go +++ b/internal/processing/common/status.go @@ -69,33 +69,22 @@ func (p *Processor) GetTargetStatusBy( } if requester != nil && visible { - // We only bother refreshing if this status - // is visible to requester, AND there *is* - // a requester (i.e. request is authorized) - // to prevent a possible DOS vector. - - if window != nil { - // Window is explicitly set, so likely - // tighter than the default window. - // Do refresh synchronously. - _, _, err := p.federator.RefreshStatus(ctx, - requester.Username, - target, - nil, - window, - ) - if err != nil { - log.Errorf(ctx, "error refreshing status: %v", err) - } - } else { - // Only refresh async *if* out-of-date. - p.federator.RefreshStatusAsync(ctx, - requester.Username, - target, - nil, - nil, - ) + // Only refresh status if visible to requester, + // and there is *authorized* requester to prevent + // a possible DOS vector for unauthorized clients. + latest, _, err := p.federator.RefreshStatus(ctx, + requester.Username, + target, + nil, + window, + ) + if err != nil { + log.Errorf(ctx, "error refreshing target %s: %v", target.URI, err) + return target, visible, nil } + + // Set latest. + target = latest } return target, visible, nil