commit 7f6a793

default  ·  2024-01-10 18:16:05 +0000 UTC
parent f0d1851
Fixed minor collision in webfinger caching.
2 files changed,  +8, -4
M snac.h
M snac.h
+4, -2
 1@@ -1,7 +1,7 @@
 2 /* snac - A simple, minimalistic ActivityPub instance */
 3 /* copyright (c) 2022 - 2024 grunfink et al. / MIT license */
 4 
 5-#define VERSION "2.44"
 6+#define VERSION "2.45-dev"
 7 
 8 #define USER_AGENT "snac/" VERSION
 9 
10@@ -46,13 +46,14 @@ typedef struct {
11 } snac;
12 
13 typedef struct {
14+    int s_size;             /* struct size (for double checking) */
15     int srv_running;        /* server running on/off */
16     int use_fcgi;           /* FastCGI use on/off */
17     time_t srv_start_time;  /* start time */
18     int job_fifo_size;      /* job fifo size */
19     int peak_job_fifo_size; /* maximum job fifo size seen */
20     int n_threads;          /* number of configured threads */
21-    enum { THST_WAIT, THST_IN, THST_QUEUE, THST_STOP } th_state[MAX_THREADS];
22+    enum { THST_STOP, THST_WAIT, THST_IN, THST_QUEUE } th_state[MAX_THREADS];
23 } srv_state;
24 
25 void snac_log(snac *user, xs_str *str);
26@@ -229,6 +230,7 @@ xs_dict *http_signed_request(snac *snac, const char *method, const char *url,
27                             int timeout);
28 int check_signature(xs_dict *req, xs_str **err);
29 
30+srv_state *srv_state_op(xs_str **fname, int op);
31 void httpd(void);
32 
33 int webfinger_request_signed(snac *snac, const char *qs, char **actor, char **user);
+4, -2
 1@@ -48,8 +48,10 @@ int webfinger_request_signed(snac *snac, const char *qs, char **actor, char **us
 2 
 3     xs *obj = NULL;
 4 
 5+    xs *cached_qs = xs_fmt("webfinger:%s", qs);
 6+
 7     /* is it cached? */
 8-    if (valid_status(status = object_get(qs, &obj))) {
 9+    if (valid_status(status = object_get(cached_qs, &obj))) {
10         /* nothing more to do */
11     }
12     else
13@@ -77,7 +79,7 @@ int webfinger_request_signed(snac *snac, const char *qs, char **actor, char **us
14 
15     if (obj == NULL && valid_status(status) && payload) {
16         obj = xs_json_loads(payload);
17-        object_add(qs, obj);
18+        object_add(cached_qs, obj);
19     }
20 
21     if (obj) {