commit eb0c7ea

default  ·  2023-03-01 08:22:32 +0000 UTC
parent d75a22a
Minor refactoring to actor_request().

Including commented out experimental code for collecting sharedInboxes.
1 files changed,  +29, -10
+29, -10
 1@@ -96,24 +96,43 @@ int actor_request(snac *snac, char *actor, d_char **data)
 2     int status, status2;
 3     xs *payload = NULL;
 4 
 5+    if (data)
 6+        *data = NULL;
 7+
 8     /* get from disk first */
 9     status = actor_get(snac, actor, data);
10 
11-    if (status == 200)
12-        return status;
13+    if (status != 200) {
14+        /* actor data non-existent or stale: get from the net */
15+        status2 = activitypub_request(snac, actor, &payload);
16+
17+        if (valid_status(status2)) {
18+            /* renew data */
19+            status = actor_add(snac, actor, payload);
20+
21+            if (data != NULL) {
22+                *data   = payload;
23+                payload = NULL;
24+            }
25+        }
26+    }
27 
28-    /* actor data non-existent or stale: get from the net */
29-    status2 = activitypub_request(snac, actor, &payload);
30+#if 0
31+    if (valid_status(status) && data && *data) {
32+        xs *fn = xs_fmt("%s/inboxes.lst", srv_basedir);
33+        FILE *f;
34 
35-    if (valid_status(status2)) {
36-        /* renew data */
37-        status = actor_add(snac, actor, payload);
38+        if ((f = fopen(fn, "a")) != NULL) {
39+            char *v;
40+            if (!xs_is_null(v = xs_dict_get(*data, "endpoints")) &&
41+                !xs_is_null(v = xs_dict_get(v, "sharedInbox"))) {
42+                fprintf(f, "%s\n", v);
43+            }
44 
45-        if (data != NULL) {
46-            *data   = payload;
47-            payload = NULL;
48+            fclose(f);
49         }
50     }
51+#endif
52 
53     return status;
54 }