summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--activitypub.c10
-rw-r--r--html.c16
2 files changed, 16 insertions, 10 deletions
diff --git a/activitypub.c b/activitypub.c
index 51ae6fa..cebefca 100644
--- a/activitypub.c
+++ b/activitypub.c
@@ -577,13 +577,17 @@ int process_message(snac *snac, char *msg, char *req)
/* bring the actor */
a_status = actor_request(snac, actor, &actor_o);
- /* if it's a 410 Gone, it's a Delete crap that can be ignored */
- if (a_status == 410) {
+ /* if the actor does not explicitly exist, discard */
+ if (a_status == 404 || a_status == 410) {
+ snac_debug(snac, 1,
+ xs_fmt("dropping message due to actor error %s %d", actor, a_status));
+
return 1;
}
if (!valid_status(a_status)) {
- snac_log(snac,
+ /* other actor download errors may need a retry */
+ snac_debug(snac, 1,
xs_fmt("error requesting actor %s %d -- retry later", actor, a_status));
return 0;
diff --git a/html.c b/html.c
index a7ed0b4..5b336bc 100644
--- a/html.c
+++ b/html.c
@@ -368,7 +368,7 @@ d_char *html_top_controls(snac *snac, d_char *s)
}
-d_char *html_entry(snac *snac, d_char *s, char *msg, xs_set *seen, int level)
+d_char *html_entry(snac *snac, d_char *os, char *msg, xs_set *seen, int level)
{
char *id = xs_dict_get(msg, "id");
char *type = xs_dict_get(msg, "type");
@@ -378,17 +378,19 @@ d_char *html_entry(snac *snac, d_char *s, char *msg, xs_set *seen, int level)
/* return if already seen */
if (xs_set_add(seen, id) == 0)
- return s;
+ return os;
if (strcmp(type, "Follow") == 0)
- return s;
+ return os;
/* bring the main actor */
if ((actor = xs_dict_get(msg, "attributedTo")) == NULL)
- return s;
+ return os;
if (!valid_status(actor_get(snac, actor, &actor_o)))
- return s;
+ return os;
+
+ xs *s = xs_str_new(NULL);
/* if this is our post, add the score */
if (xs_startswith(id, snac->actor)) {
@@ -422,7 +424,7 @@ d_char *html_entry(snac *snac, d_char *s, char *msg, xs_set *seen, int level)
"<a href=\"%s\">%s</a> %s</div>\n",
xs_dict_get(actor_r, "id"),
name,
- "boosted"
+ L("boosted")
);
s = xs_str_cat(s, s1);
@@ -510,7 +512,7 @@ d_char *html_entry(snac *snac, d_char *s, char *msg, xs_set *seen, int level)
s = xs_str_cat(s, "</div> <!-- post or child -->\n");
- return s;
+ return xs_str_cat(os, s);
}