diff options
| author | 2024-01-10 19:16:05 +0100 | |
|---|---|---|
| committer | 2024-01-10 19:16:05 +0100 | |
| commit | 7f6a79314634fa089718ec0f99e4231295e03d5b (patch) | |
| tree | 20c134b6c225e853986ec47f8f8d656b29afc0bb | |
| parent | Call srv_archive_error() on input q_item errors. (diff) | |
| download | penes-snac2-7f6a79314634fa089718ec0f99e4231295e03d5b.tar.gz penes-snac2-7f6a79314634fa089718ec0f99e4231295e03d5b.tar.xz penes-snac2-7f6a79314634fa089718ec0f99e4231295e03d5b.zip | |
Fixed minor collision in webfinger caching.
| -rw-r--r-- | snac.h | 6 | ||||
| -rw-r--r-- | webfinger.c | 6 |
2 files changed, 8 insertions, 4 deletions
| @@ -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 | ||
| 48 | typedef struct { | 48 | typedef 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 | ||
| 58 | void snac_log(snac *user, xs_str *str); | 59 | 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, | |||
| 229 | int timeout); | 230 | int timeout); |
| 230 | int check_signature(xs_dict *req, xs_str **err); | 231 | int check_signature(xs_dict *req, xs_str **err); |
| 231 | 232 | ||
| 233 | srv_state *srv_state_op(xs_str **fname, int op); | ||
| 232 | void httpd(void); | 234 | void httpd(void); |
| 233 | 235 | ||
| 234 | int webfinger_request_signed(snac *snac, const char *qs, char **actor, char **user); | 236 | 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 | |||
| 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) { |