mirror of
https://codeberg.org/grunfink/snac2.git
synced 2024-11-26 06:53:37 +00:00
Merge pull request 'Fixed webfinger and curl issues' (#31) from poesty/snac2:master into master
Reviewed-on: https://codeberg.org/grunfink/snac2/pulls/31
This commit is contained in:
commit
14950d6954
3 changed files with 6 additions and 4 deletions
|
@ -673,7 +673,7 @@ xs_dict *msg_follow(snac *snac, const char *q)
|
||||||
if (xs_startswith(url_or_uid, "https:/"))
|
if (xs_startswith(url_or_uid, "https:/"))
|
||||||
actor = xs_dup(url_or_uid);
|
actor = xs_dup(url_or_uid);
|
||||||
else
|
else
|
||||||
if (!valid_status(webfinger_request(url_or_uid, &actor, NULL))) {
|
if (!valid_status(webfinger_request(url_or_uid, &actor, NULL)) || actor == NULL) {
|
||||||
snac_log(snac, xs_fmt("cannot resolve user %s to follow", url_or_uid));
|
snac_log(snac, xs_fmt("cannot resolve user %s to follow", url_or_uid));
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,7 +85,8 @@ int webfinger_request(const char *qs, char **actor, char **user)
|
||||||
if (xs_type(v) == XSTYPE_DICT) {
|
if (xs_type(v) == XSTYPE_DICT) {
|
||||||
char *type = xs_dict_get(v, "type");
|
char *type = xs_dict_get(v, "type");
|
||||||
|
|
||||||
if (type && strcmp(type, "application/activity+json") == 0) {
|
if (type && (strcmp(type, "application/activity+json") == 0 ||
|
||||||
|
strcmp(type, "application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"") == 0)) {
|
||||||
*actor = xs_dup(xs_dict_get(v, "href"));
|
*actor = xs_dup(xs_dict_get(v, "href"));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -127,14 +127,15 @@ xs_dict *xs_http_request(const char *method, const char *url,
|
||||||
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, _data_callback);
|
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, _data_callback);
|
||||||
|
|
||||||
if (strcmp(method, "POST") == 0 || strcmp(method, "PUT") == 0) {
|
if (strcmp(method, "POST") == 0 || strcmp(method, "PUT") == 0) {
|
||||||
curl_easy_setopt(curl, method[1] == 'O' ? CURLOPT_POST : CURLOPT_UPLOAD, 1L);
|
CURLoption curl_method = method[1] == 'O' ? CURLOPT_POST : CURLOPT_UPLOAD;
|
||||||
|
curl_easy_setopt(curl, curl_method, 1L);
|
||||||
|
|
||||||
if (body != NULL) {
|
if (body != NULL) {
|
||||||
if (b_size <= 0)
|
if (b_size <= 0)
|
||||||
b_size = xs_size(body);
|
b_size = xs_size(body);
|
||||||
|
|
||||||
/* add the content-length header */
|
/* add the content-length header */
|
||||||
curl_easy_setopt(curl, CURLOPT_INFILESIZE, b_size);
|
curl_easy_setopt(curl, curl_method == CURLOPT_POST ? CURLOPT_POSTFIELDSIZE : CURLOPT_INFILESIZE, b_size);
|
||||||
|
|
||||||
pd.data = (char *)body;
|
pd.data = (char *)body;
|
||||||
pd.size = b_size;
|
pd.size = b_size;
|
||||||
|
|
Loading…
Reference in a new issue