From 7f6a79314634fa089718ec0f99e4231295e03d5b Mon Sep 17 00:00:00 2001 From: default Date: Wed, 10 Jan 2024 19:16:05 +0100 Subject: [PATCH] Fixed minor collision in webfinger caching. --- snac.h | 6 ++++-- webfinger.c | 6 ++++-- 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 @@ /* snac - A simple, minimalistic ActivityPub instance */ /* copyright (c) 2022 - 2024 grunfink et al. / MIT license */ -#define VERSION "2.44" +#define VERSION "2.45-dev" #define USER_AGENT "snac/" VERSION @@ -46,13 +46,14 @@ typedef struct { } snac; typedef struct { + int s_size; /* struct size (for double checking) */ int srv_running; /* server running on/off */ int use_fcgi; /* FastCGI use on/off */ time_t srv_start_time; /* start time */ int job_fifo_size; /* job fifo size */ int peak_job_fifo_size; /* maximum job fifo size seen */ int n_threads; /* number of configured threads */ - enum { THST_WAIT, THST_IN, THST_QUEUE, THST_STOP } th_state[MAX_THREADS]; + enum { THST_STOP, THST_WAIT, THST_IN, THST_QUEUE } th_state[MAX_THREADS]; } srv_state; void snac_log(snac *user, xs_str *str); @@ -229,6 +230,7 @@ xs_dict *http_signed_request(snac *snac, const char *method, const char *url, int timeout); int check_signature(xs_dict *req, xs_str **err); +srv_state *srv_state_op(xs_str **fname, int op); void httpd(void); int 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 xs *obj = NULL; + xs *cached_qs = xs_fmt("webfinger:%s", qs); + /* is it cached? */ - if (valid_status(status = object_get(qs, &obj))) { + if (valid_status(status = object_get(cached_qs, &obj))) { /* nothing more to do */ } else @@ -77,7 +79,7 @@ int webfinger_request_signed(snac *snac, const char *qs, char **actor, char **us if (obj == NULL && valid_status(status) && payload) { obj = xs_json_loads(payload); - object_add(qs, obj); + object_add(cached_qs, obj); } if (obj) {