snac2

Fork of https://codeberg.org/grunfink/snac2
git clone https://git.inz.fi/snac2
Log | Files | Refs | README | LICENSE

commit eb0c7eabbb88bed8e30fd7dcd337ce48a5f46a8f
parent d75a22adab5b93c0705b9f58fe660d82219ad573
Author: default <nobody@localhost>
Date:   Wed,  1 Mar 2023 09:22:32 +0100

Minor refactoring to actor_request().

Including commented out experimental code for collecting sharedInboxes.

Diffstat:
Mactivitypub.c | 39+++++++++++++++++++++++++++++----------
1 file changed, 29 insertions(+), 10 deletions(-)

diff --git a/activitypub.c b/activitypub.c @@ -96,24 +96,43 @@ int actor_request(snac *snac, char *actor, d_char **data) int status, status2; xs *payload = NULL; + if (data) + *data = NULL; + /* get from disk first */ status = actor_get(snac, actor, data); - if (status == 200) - return status; + if (status != 200) { + /* actor data non-existent or stale: get from the net */ + status2 = activitypub_request(snac, actor, &payload); + + if (valid_status(status2)) { + /* renew data */ + status = actor_add(snac, actor, payload); + + if (data != NULL) { + *data = payload; + payload = NULL; + } + } + } - /* actor data non-existent or stale: get from the net */ - status2 = activitypub_request(snac, actor, &payload); +#if 0 + if (valid_status(status) && data && *data) { + xs *fn = xs_fmt("%s/inboxes.lst", srv_basedir); + FILE *f; - if (valid_status(status2)) { - /* renew data */ - status = actor_add(snac, actor, payload); + if ((f = fopen(fn, "a")) != NULL) { + char *v; + if (!xs_is_null(v = xs_dict_get(*data, "endpoints")) && + !xs_is_null(v = xs_dict_get(v, "sharedInbox"))) { + fprintf(f, "%s\n", v); + } - if (data != NULL) { - *data = payload; - payload = NULL; + fclose(f); } } +#endif return status; }