diff options
Diffstat (limited to 'mastoapi.c')
| -rw-r--r-- | mastoapi.c | 19 |
1 files changed, 19 insertions, 0 deletions
| @@ -2256,6 +2256,25 @@ int mastoapi_get_handler(const xs_dict *req, const char *q_path, | |||
| 2256 | status = HTTP_STATUS_OK; | 2256 | status = HTTP_STATUS_OK; |
| 2257 | } | 2257 | } |
| 2258 | else | 2258 | else |
| 2259 | if (strcmp(cmd, "/v1/instance/peers") == 0) { /** **/ | ||
| 2260 | /* get the collected inbox list as the instances "this domain is aware of" */ | ||
| 2261 | xs *list = inbox_list(); | ||
| 2262 | xs *peers = xs_list_new(); | ||
| 2263 | const char *inbox; | ||
| 2264 | |||
| 2265 | xs_list_foreach(list, inbox) { | ||
| 2266 | xs *l = xs_split(inbox, "/"); | ||
| 2267 | const char *domain = xs_list_get(l, 2); | ||
| 2268 | |||
| 2269 | if (xs_is_string(domain)) | ||
| 2270 | peers = xs_list_append(peers, domain); | ||
| 2271 | } | ||
| 2272 | |||
| 2273 | *body = xs_json_dumps(peers, 4); | ||
| 2274 | *ctype = "application/json"; | ||
| 2275 | status = HTTP_STATUS_OK; | ||
| 2276 | } | ||
| 2277 | else | ||
| 2259 | if (xs_startswith(cmd, "/v1/statuses/")) { /** **/ | 2278 | if (xs_startswith(cmd, "/v1/statuses/")) { /** **/ |
| 2260 | /* information about a status */ | 2279 | /* information about a status */ |
| 2261 | if (logged_in) { | 2280 | if (logged_in) { |