summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar default2024-01-10 19:16:05 +0100
committerGravatar default2024-01-10 19:16:05 +0100
commit7f6a79314634fa089718ec0f99e4231295e03d5b (patch)
tree20c134b6c225e853986ec47f8f8d656b29afc0bb
parentCall srv_archive_error() on input q_item errors. (diff)
downloadpenes-snac2-7f6a79314634fa089718ec0f99e4231295e03d5b.tar.gz
penes-snac2-7f6a79314634fa089718ec0f99e4231295e03d5b.tar.xz
penes-snac2-7f6a79314634fa089718ec0f99e4231295e03d5b.zip
Fixed minor collision in webfinger caching.
-rw-r--r--snac.h6
-rw-r--r--webfinger.c6
2 files changed, 8 insertions, 4 deletions
diff --git a/snac.h b/snac.h
index 3fc6d50..5843c5a 100644
--- a/snac.h
+++ b/snac.h
@@ -1,7 +1,7 @@
1/* snac - A simple, minimalistic ActivityPub instance */ 1/* snac - A simple, minimalistic ActivityPub instance */
2/* copyright (c) 2022 - 2024 grunfink et al. / MIT license */ 2/* copyright (c) 2022 - 2024 grunfink et al. / MIT license */
3 3
4#define VERSION "2.44" 4#define VERSION "2.45-dev"
5 5
6#define USER_AGENT "snac/" VERSION 6#define USER_AGENT "snac/" VERSION
7 7
@@ -46,13 +46,14 @@ typedef struct {
46} snac; 46} snac;
47 47
48typedef struct { 48typedef struct {
49 int s_size; /* struct size (for double checking) */
49 int srv_running; /* server running on/off */ 50 int srv_running; /* server running on/off */
50 int use_fcgi; /* FastCGI use on/off */ 51 int use_fcgi; /* FastCGI use on/off */
51 time_t srv_start_time; /* start time */ 52 time_t srv_start_time; /* start time */
52 int job_fifo_size; /* job fifo size */ 53 int job_fifo_size; /* job fifo size */
53 int peak_job_fifo_size; /* maximum job fifo size seen */ 54 int peak_job_fifo_size; /* maximum job fifo size seen */
54 int n_threads; /* number of configured threads */ 55 int n_threads; /* number of configured threads */
55 enum { THST_WAIT, THST_IN, THST_QUEUE, THST_STOP } th_state[MAX_THREADS]; 56 enum { THST_STOP, THST_WAIT, THST_IN, THST_QUEUE } th_state[MAX_THREADS];
56} srv_state; 57} srv_state;
57 58
58void snac_log(snac *user, xs_str *str); 59void snac_log(snac *user, xs_str *str);
@@ -229,6 +230,7 @@ xs_dict *http_signed_request(snac *snac, const char *method, const char *url,
229 int timeout); 230 int timeout);
230int check_signature(xs_dict *req, xs_str **err); 231int check_signature(xs_dict *req, xs_str **err);
231 232
233srv_state *srv_state_op(xs_str **fname, int op);
232void httpd(void); 234void httpd(void);
233 235
234int webfinger_request_signed(snac *snac, const char *qs, char **actor, char **user); 236int webfinger_request_signed(snac *snac, const char *qs, char **actor, char **user);
diff --git a/webfinger.c b/webfinger.c
index 2184097..3f28b81 100644
--- a/webfinger.c
+++ b/webfinger.c
@@ -48,8 +48,10 @@ int webfinger_request_signed(snac *snac, const char *qs, char **actor, char **us
48 48
49 xs *obj = NULL; 49 xs *obj = NULL;
50 50
51 xs *cached_qs = xs_fmt("webfinger:%s", qs);
52
51 /* is it cached? */ 53 /* is it cached? */
52 if (valid_status(status = object_get(qs, &obj))) { 54 if (valid_status(status = object_get(cached_qs, &obj))) {
53 /* nothing more to do */ 55 /* nothing more to do */
54 } 56 }
55 else 57 else
@@ -77,7 +79,7 @@ int webfinger_request_signed(snac *snac, const char *qs, char **actor, char **us
77 79
78 if (obj == NULL && valid_status(status) && payload) { 80 if (obj == NULL && valid_status(status) && payload) {
79 obj = xs_json_loads(payload); 81 obj = xs_json_loads(payload);
80 object_add(qs, obj); 82 object_add(cached_qs, obj);
81 } 83 }
82 84
83 if (obj) { 85 if (obj) {