summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar grunfink2025-07-27 04:08:37 +0200
committerGravatar grunfink2025-07-27 04:08:37 +0200
commit2e982c79e1385b568d407f6e45f2b062761dec12 (patch)
treec5a82fd2123e4deb3072d894b0c5799391c10402
parentUpdated RELEASE_NOTES. (diff)
downloadsnac2-2e982c79e1385b568d407f6e45f2b062761dec12.tar.gz
snac2-2e982c79e1385b568d407f6e45f2b062761dec12.tar.xz
snac2-2e982c79e1385b568d407f6e45f2b062761dec12.zip
mastoapi: Fixed metadata in verify_credentials.
-rw-r--r--mastoapi.c27
1 files changed, 25 insertions, 2 deletions
diff --git a/mastoapi.c b/mastoapi.c
index 7fb995a..798edec 100644
--- a/mastoapi.c
+++ b/mastoapi.c
@@ -1271,8 +1271,31 @@ void credentials_get(char **body, char **ctype, int *status, snac snac)
1271 acct = xs_dict_append(acct, "header", header); 1271 acct = xs_dict_append(acct, "header", header);
1272 acct = xs_dict_append(acct, "header_static", header); 1272 acct = xs_dict_append(acct, "header_static", header);
1273 1273
1274 const xs_dict *metadata = xs_dict_get(snac.config, "metadata"); 1274 xs *metadata = NULL;
1275 if (xs_type(metadata) == XSTYPE_DICT) { 1275 const xs_dict *md = xs_dict_get(snac.config, "metadata");
1276
1277 if (xs_is_dict(md))
1278 metadata = xs_dup(md);
1279 else
1280 if (xs_is_string(md)) {
1281 metadata = xs_dict_new();
1282 xs *l = xs_split(md, "\n");
1283 const char *ll;
1284
1285 xs_list_foreach(l, ll) {
1286 xs *kv = xs_split_n(ll, "=", 1);
1287 const char *k = xs_list_get(kv, 0);
1288 const char *v = xs_list_get(kv, 1);
1289
1290 if (k && v) {
1291 xs *kk = xs_strip_i(xs_dup(k));
1292 xs *vv = xs_strip_i(xs_dup(v));
1293 metadata = xs_dict_set(metadata, kk, vv);
1294 }
1295 }
1296 }
1297
1298 if (xs_is_dict(metadata)) {
1276 xs *fields = xs_list_new(); 1299 xs *fields = xs_list_new();
1277 const xs_str *k; 1300 const xs_str *k;
1278 const xs_str *v; 1301 const xs_str *v;