summaryrefslogtreecommitdiff
path: root/activitypub.c
diff options
context:
space:
mode:
Diffstat (limited to 'activitypub.c')
-rw-r--r--activitypub.c26
1 files changed, 15 insertions, 11 deletions
diff --git a/activitypub.c b/activitypub.c
index 4a04000..dee127d 100644
--- a/activitypub.c
+++ b/activitypub.c
@@ -356,23 +356,27 @@ int timeline_request(snac *snac, char **id, xs_str **wrk, int level)
}
if (xs_match(type, POSTLIKE_OBJECT_TYPE)) {
- const char *actor = get_atto(object);
-
if (content_check("filter_reject.txt", object))
snac_log(snac, xs_fmt("timeline_request rejected by content %s", nid));
else {
- /* request (and drop) the actor for this entry */
- if (!xs_is_null(actor))
- actor_request(snac, actor, NULL);
+ const char *actor = get_atto(object);
+
+ if (!xs_is_null(actor)) {
+ /* request (and drop) the actor for this entry */
+ if (!valid_status(actor_request(snac, actor, NULL))) {
+ /* failed? retry later */
+ enqueue_actor_refresh(snac, actor, 60);
+ }
- /* does it have an ancestor? */
- char *in_reply_to = xs_dict_get(object, "inReplyTo");
+ /* does it have an ancestor? */
+ char *in_reply_to = xs_dict_get(object, "inReplyTo");
- /* store */
- timeline_add(snac, nid, object);
+ /* store */
+ timeline_add(snac, nid, object);
- /* recurse! */
- timeline_request(snac, &in_reply_to, NULL, level + 1);
+ /* recurse! */
+ timeline_request(snac, &in_reply_to, NULL, level + 1);
+ }
}
}
}