summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordefault <nobody@localhost>2024-02-15 17:34:46 +0100
committerdefault <nobody@localhost>2024-02-15 17:34:46 +0100
commit263e239653b79d230a7546b9db89ff71dc0f2a53 (patch)
tree7d3718fe8a7927f4ea34028e2280ae384a05142b
parent2afcb4b6ecafeb852abb2d0bb48d170b469a5a36 (diff)
Moved verified links to its own json file.
-rw-r--r--data.c9
-rw-r--r--html.c2
-rw-r--r--mastoapi.c13
-rw-r--r--snac.h1
4 files changed, 17 insertions, 8 deletions
diff --git a/data.c b/data.c
index 763eca3..e35a5dd 100644
--- a/data.c
+++ b/data.c
@@ -146,6 +146,7 @@ void user_free(snac *snac)
xs_free(snac->config);
xs_free(snac->config_o);
xs_free(snac->key);
+ xs_free(snac->links);
xs_free(snac->actor);
xs_free(snac->md5);
}
@@ -233,6 +234,14 @@ int user_open(snac *user, const char *uid)
}
else
srv_debug(2, xs_fmt("error opening '%s' %d", cfg_file, errno));
+
+ /* verified links */
+ xs *links_file = xs_fmt("%s/links.json", user->basedir);
+
+ if ((f = fopen(links_file, "r")) != NULL) {
+ user->links = xs_json_load(f);
+ fclose(f);
+ }
}
else
srv_debug(1, xs_fmt("invalid user '%s'", uid));
diff --git a/html.c b/html.c
index f95cb4f..4eb9b6a 100644
--- a/html.c
+++ b/html.c
@@ -767,7 +767,7 @@ static xs_html *html_user_body(snac *user, int local)
xs_str *k;
xs_str *v;
- xs_dict *val_links = xs_dict_get(user->config, "validated_links");
+ xs_dict *val_links = user->links;
if (xs_is_null(val_links))
val_links = xs_stock_dict;
diff --git a/mastoapi.c b/mastoapi.c
index 4b7122c..8dcd6b4 100644
--- a/mastoapi.c
+++ b/mastoapi.c
@@ -624,15 +624,12 @@ xs_dict *mastoapi_account(const xs_dict *actor)
/* dict of validated links */
xs_dict *val_links = NULL;
+ snac user = {0};
if (xs_startswith(id, srv_baseurl)) {
/* if it's a local user, open it and pick its validated links */
- snac user;
-
- if (user_open(&user, prefu)) {
- val_links = xs_dict_get(user.config, "validated_links");
- user_free(&user);
- }
+ if (user_open(&user, prefu))
+ val_links = user.links;
}
if (xs_is_null(val_links))
@@ -662,6 +659,8 @@ xs_dict *mastoapi_account(const xs_dict *actor)
}
}
+ user_free(&user);
+
acct = xs_dict_append(acct, "fields", fields);
return acct;
@@ -1157,7 +1156,7 @@ int mastoapi_get_handler(const xs_dict *req, const char *q_path,
xs_str *k;
xs_str *v;
- xs_dict *val_links = xs_dict_get(snac1.config, "validated_links");
+ xs_dict *val_links = snac1.links;
if (xs_is_null(val_links))
val_links = xs_stock_dict;
diff --git a/snac.h b/snac.h
index 0e4c6cd..7c3092b 100644
--- a/snac.h
+++ b/snac.h
@@ -41,6 +41,7 @@ typedef struct {
xs_dict *config; /* user configuration */
xs_dict *config_o; /* user configuration admin override */
xs_dict *key; /* keypair */
+ xs_dict *links; /* validated links */
xs_str *actor; /* actor url */
xs_str *md5; /* actor url md5 */
} snac;