diff options
Diffstat (limited to 'internal/federation/federatingdb')
-rw-r--r-- | internal/federation/federatingdb/accept.go | 4 | ||||
-rw-r--r-- | internal/federation/federatingdb/lock.go | 7 | ||||
-rw-r--r-- | internal/federation/federatingdb/reject.go | 5 | ||||
-rw-r--r-- | internal/federation/federatingdb/util.go | 18 |
4 files changed, 24 insertions, 10 deletions
diff --git a/internal/federation/federatingdb/accept.go b/internal/federation/federatingdb/accept.go index 1509b37bc..8efb29b53 100644 --- a/internal/federation/federatingdb/accept.go +++ b/internal/federation/federatingdb/accept.go @@ -97,9 +97,7 @@ func (f *federatingDB) Accept(ctx context.Context, accept vocab.ActivityStreamsA if iter.GetType() == nil { continue } - switch iter.GetType().GetTypeName() { - // we have the whole object so we can figure out what we're accepting - case ap.ActivityFollow: + if iter.GetType().GetTypeName() == ap.ActivityFollow { // ACCEPT FOLLOW asFollow, ok := iter.GetType().(vocab.ActivityStreamsFollow) if !ok { diff --git a/internal/federation/federatingdb/lock.go b/internal/federation/federatingdb/lock.go index 0d35f337f..22be6c793 100644 --- a/internal/federation/federatingdb/lock.go +++ b/internal/federation/federatingdb/lock.go @@ -24,6 +24,8 @@ import ( "net/url" "sync" "sync/atomic" + + "github.com/sirupsen/logrus" ) // Lock takes a lock for the object at the specified id. If an error @@ -54,7 +56,10 @@ func (f *federatingDB) Lock(c context.Context, id *url.URL) error { // Get mutex, or create new mu, ok := f.locks[idStr] if !ok { - mu = f.pool.Get().(*mutex) + mu, ok = f.pool.Get().(*mutex) + if !ok { + logrus.Panic("Lock: pool entry was not a *mutex") + } f.locks[idStr] = mu } diff --git a/internal/federation/federatingdb/reject.go b/internal/federation/federatingdb/reject.go index 2d8687ee9..15d4a87ae 100644 --- a/internal/federation/federatingdb/reject.go +++ b/internal/federation/federatingdb/reject.go @@ -90,9 +90,8 @@ func (f *federatingDB) Reject(ctx context.Context, reject vocab.ActivityStreamsR continue } - switch iter.GetType().GetTypeName() { - // we have the whole object so we can figure out what we're rejecting - case ap.ActivityFollow: + if iter.GetType().GetTypeName() == ap.ActivityFollow { + // we have the whole object so we can figure out what we're rejecting // REJECT FOLLOW asFollow, ok := iter.GetType().(vocab.ActivityStreamsFollow) if !ok { diff --git a/internal/federation/federatingdb/util.go b/internal/federation/federatingdb/util.go index 87b85aed6..f35fbbb2d 100644 --- a/internal/federation/federatingdb/util.go +++ b/internal/federation/federatingdb/util.go @@ -308,17 +308,29 @@ func (f *federatingDB) collectIRIs(ctx context.Context, iris []*url.URL) (vocab. func extractFromCtx(ctx context.Context) (receivingAccount, requestingAccount *gtsmodel.Account, fromFederatorChan chan messages.FromFederator) { receivingAccountI := ctx.Value(util.APReceivingAccount) if receivingAccountI != nil { - receivingAccount = receivingAccountI.(*gtsmodel.Account) + var ok bool + receivingAccount, ok = receivingAccountI.(*gtsmodel.Account) + if !ok { + logrus.Panicf("extractFromCtx: context entry with key %s could not be asserted to *gtsmodel.Account", util.APReceivingAccount) + } } requestingAcctI := ctx.Value(util.APRequestingAccount) if requestingAcctI != nil { - requestingAccount = requestingAcctI.(*gtsmodel.Account) + var ok bool + requestingAccount, ok = requestingAcctI.(*gtsmodel.Account) + if !ok { + logrus.Panicf("extractFromCtx: context entry with key %s could not be asserted to *gtsmodel.Account", util.APRequestingAccount) + } } fromFederatorChanI := ctx.Value(util.APFromFederatorChanKey) if fromFederatorChanI != nil { - fromFederatorChan = fromFederatorChanI.(chan messages.FromFederator) + var ok bool + fromFederatorChan, ok = fromFederatorChanI.(chan messages.FromFederator) + if !ok { + logrus.Panicf("extractFromCtx: context entry with key %s could not be asserted to chan messages.FromFederator", util.APFromFederatorChanKey) + } } return |