summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--activitypub.c39
1 files changed, 29 insertions, 10 deletions
diff --git a/activitypub.c b/activitypub.c
index bb68a7d..a259a25 100644
--- 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;
}