#include "webfinger.h" // Submodules #include "http/server/request.h" // Standard Library #include #include bool route_wellknown_webfinger( struct http_request* req ) { // /.well-known/webfinger?resource=acct:teknomunk@apogee.polaris-1.work const char* key; char* resource; char* resource_orig; while(( key = http_request_route_query_key( req ) )) { if( 0 == strcmp(key,"resource") ) { resource_orig = resource = strdup(http_request_route_query_value(req) ); } else { http_request_route_query_value(req); } } char* server; strtok_r( resource, ":", &resource ); /*char* account_name = */strtok_r( resource, "@", &server ); // Verify the server name matches this instance // if( 0 != strcmp( server, this_server_hostname() ) ) { return false; } http_request_send_headers( req, 200, "application/json", true ); FILE* f = http_request_get_response_body(req); #define RENDER #include "src/view/webfinger.json.inc" #undef RENDER free(resource_orig); return true; }