diff options
Diffstat (limited to 'activitypub.c')
| -rw-r--r-- | activitypub.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/activitypub.c b/activitypub.c index 164c6e6..be1cc5d 100644 --- a/activitypub.c +++ b/activitypub.c | |||
| @@ -484,13 +484,22 @@ d_char *msg_delete(snac *snac, char *id) | |||
| 484 | } | 484 | } |
| 485 | 485 | ||
| 486 | 486 | ||
| 487 | d_char *msg_follow(snac *snac, char *actor) | 487 | d_char *msg_follow(snac *snac, char *url_or_uid) |
| 488 | /* creates a 'Follow' message */ | 488 | /* creates a 'Follow' message */ |
| 489 | { | 489 | { |
| 490 | d_char *actor_o = NULL; | 490 | xs *actor_o = NULL; |
| 491 | xs *actor = NULL; | ||
| 491 | d_char *msg = NULL; | 492 | d_char *msg = NULL; |
| 492 | int status; | 493 | int status; |
| 493 | 494 | ||
| 495 | if (xs_startswith(url_or_uid, "https:/")) | ||
| 496 | actor = xs_dup(url_or_uid); | ||
| 497 | else | ||
| 498 | if (!valid_status(webfinger_request(url_or_uid, &actor, NULL))) { | ||
| 499 | snac_log(snac, xs_fmt("cannot resolve user %s to follow", url_or_uid)); | ||
| 500 | return NULL; | ||
| 501 | } | ||
| 502 | |||
| 494 | /* request the actor */ | 503 | /* request the actor */ |
| 495 | status = actor_request(snac, actor, &actor_o); | 504 | status = actor_request(snac, actor, &actor_o); |
| 496 | 505 | ||