aboutsummaryrefslogtreecommitdiff
path: root/activitypub
diff options
context:
space:
mode:
authorKushBlazingJudah <59340248+KushBlazingJudah@users.noreply.github.com>2022-07-26 18:29:44 -0300
committerKushBlazingJudah <59340248+KushBlazingJudah@users.noreply.github.com>2022-07-26 18:29:44 -0300
commit0a318777ad611e5b0080807e19d5030bbe5e8431 (patch)
treeb916a6523f5096a423366874e55b44a92d1b036d /activitypub
parent3a7664d404bca40cb3234924fa969c0ae133d085 (diff)
fix fail with posting to a down instance's thread
in a couple of scenarios, fchannel may fail to contact a server and due to faulty error handling, activities that are supposed to send never do. this commit corrects said error handling.
Diffstat (limited to 'activitypub')
-rw-r--r--activitypub/activity.go6
-rw-r--r--activitypub/webfinger.go21
2 files changed, 19 insertions, 8 deletions
diff --git a/activitypub/activity.go b/activitypub/activity.go
index bd57778..b05de07 100644
--- a/activitypub/activity.go
+++ b/activitypub/activity.go
@@ -41,7 +41,11 @@ func (activity Activity) AddFollowersTo() (Activity, error) {
reqActivity := Activity{Id: e + "/followers"}
aFollowers, err := reqActivity.GetCollection()
if err != nil {
- return activity, util.MakeError(err, "AddFollowersTo")
+ // Safely fail so we can continue to federate
+ config.Log.Printf("failed to get collection from %s: %v", reqActivity.Id, err)
+ continue
+
+ // return activity, util.MakeError(err, "AddFollowersTo")
}
// get followers of activity actor
diff --git a/activitypub/webfinger.go b/activitypub/webfinger.go
index 8dce506..ff6111b 100644
--- a/activitypub/webfinger.go
+++ b/activitypub/webfinger.go
@@ -74,15 +74,21 @@ func FingerActor(path string) (Actor, error) {
if ActorCache[actor+"@"+instance].Id != "" {
nActor = ActorCache[actor+"@"+instance]
} else {
- resp, _ := FingerRequest(actor, instance)
+ resp, err := FingerRequest(actor, instance)
+ if err != nil {
+ return nActor, util.MakeError(err, "FingerActor finger request")
+ }
if resp != nil && resp.StatusCode == 200 {
defer resp.Body.Close()
- body, _ := ioutil.ReadAll(resp.Body)
+ body, err := ioutil.ReadAll(resp.Body)
+ if err != nil {
+ return nActor, util.MakeError(err, "FingerActor read resp")
+ }
if err := json.Unmarshal(body, &nActor); err != nil {
- return nActor, util.MakeError(err, "FingerActor")
+ return nActor, util.MakeError(err, "FingerActor unmarshal")
}
ActorCache[actor+"@"+instance] = nActor
@@ -104,15 +110,16 @@ func FingerRequest(actor string, instance string) (*http.Response, error) {
resp, err := util.RouteProxy(req)
if err != nil {
- return resp, nil
+ return resp, err
}
var finger Webfinger
if resp.StatusCode == 200 {
- defer resp.Body.Close()
-
- body, _ := ioutil.ReadAll(resp.Body)
+ body, err := ioutil.ReadAll(resp.Body)
+ if err != nil {
+ return resp, err
+ }
if err := json.Unmarshal(body, &finger); err != nil {
return resp, util.MakeError(err, "FingerRequest")