|
@@ -8,7 +8,7 @@
|
|
|
|
|
|
#include "snac.h"
|
|
|
|
|
|
-int webfinger_request_signed(snac *snac, const char *qs, char **actor, char **user)
|
|
|
+int webfinger_request_signed(snac *snac, const char *qs, xs_str **actor, xs_str **user)
|
|
|
|
|
|
{
|
|
|
int status;
|
|
@@ -117,15 +117,34 @@ int webfinger_request_signed(snac *snac, const char *qs, char **actor, char **us
|
|
|
}
|
|
|
|
|
|
|
|
|
-int webfinger_request(const char *qs, char **actor, char **user)
|
|
|
+int webfinger_request(const char *qs, xs_str **actor, xs_str **user)
|
|
|
|
|
|
{
|
|
|
return webfinger_request_signed(NULL, qs, actor, user);
|
|
|
}
|
|
|
|
|
|
|
|
|
-int webfinger_get_handler(xs_dict *req, char *q_path,
|
|
|
- char **body, int *b_size, char **ctype)
|
|
|
+int webfinger_request_fake(const char *qs, xs_str **actor, xs_str **user)
|
|
|
+
|
|
|
+{
|
|
|
+ int status;
|
|
|
+
|
|
|
+ if (!valid_status(status = webfinger_request(qs, actor, user))) {
|
|
|
+ if (xs_startswith(qs, "https:/") || xs_startswith(qs, "http:/")) {
|
|
|
+ xs *l = xs_split(qs, "/");
|
|
|
+
|
|
|
+
|
|
|
+ *user = xs_fmt("%s@%s", xs_list_get(l, 2), xs_list_get(l, -1));
|
|
|
+ status = HTTP_STATUS_RESET_CONTENT;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return status;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+int webfinger_get_handler(xs_dict *req, const char *q_path,
|
|
|
+ xs_val **body, int *b_size, char **ctype)
|
|
|
|
|
|
{
|
|
|
int status;
|