From 49bca7e273640c65f9aa41309805ff3f7425123d Mon Sep 17 00:00:00 2001 From: default Date: Thu, 29 Sep 2022 09:11:43 +0200 Subject: [PATCH] html_entry() is built in its own string and then added. This will be faster. --- activitypub.c | 10 +++++++--- html.c | 16 +++++++++------- 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) "%s %s\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, " \n"); - return s; + return xs_str_cat(os, s); }