summaryrefslogtreecommitdiff
path: root/internal/federation/federatingdb
diff options
context:
space:
mode:
Diffstat (limited to 'internal/federation/federatingdb')
-rw-r--r--internal/federation/federatingdb/accept.go4
-rw-r--r--internal/federation/federatingdb/lock.go7
-rw-r--r--internal/federation/federatingdb/reject.go5
-rw-r--r--internal/federation/federatingdb/util.go18
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