In activitypub_request(), retry failed signed requests as non-signed.

This commit is contained in:
default 2023-02-24 09:00:03 +01:00
parent 1630519066
commit 1d82d13d62

View file

@ -55,13 +55,23 @@ int activitypub_request(snac *snac, char *url, d_char **data)
int p_size; int p_size;
char *ctype; char *ctype;
/* check if it's an url for this same site */
/* ... */
/* get from the net */ /* get from the net */
response = http_signed_request(snac, "GET", url, response = http_signed_request(snac, "GET", url,
NULL, NULL, 0, &status, &payload, &p_size, 0); NULL, NULL, 0, &status, &payload, &p_size, 0);
if (status == 0 || (status >= 500 && status <= 599)) {
/* I found an instance running Misskey that returned
500 on signed messages but returned the object
perfectly without signing (?), so why not try */
xs_free(response);
xs *hdrs = xs_dict_new();
hdrs = xs_dict_append(hdrs, "accept", "application/activity+json");
response = xs_http_request("GET", url, hdrs,
NULL, 0, &status, &payload, &p_size, 0);
}
if (valid_status(status)) { if (valid_status(status)) {
/* ensure it's ActivityPub data */ /* ensure it's ActivityPub data */
ctype = xs_dict_get(response, "content-type"); ctype = xs_dict_get(response, "content-type");