Merge pull request #3310 from annando/1704-probing
Avoid possible problems with numeric nicknames and GNU Social
This commit is contained in:
commit
ffbf330585
3 changed files with 35 additions and 21 deletions
|
@ -364,9 +364,9 @@ class Probe {
|
||||||
return self::mail($uri, $uid);
|
return self::mail($uri, $uid);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($network == NETWORK_MAIL)
|
if ($network == NETWORK_MAIL) {
|
||||||
return self::mail($uri, $uid);
|
return self::mail($uri, $uid);
|
||||||
|
}
|
||||||
// Remove "acct:" from the URI
|
// Remove "acct:" from the URI
|
||||||
$uri = str_replace('acct:', '', $uri);
|
$uri = str_replace('acct:', '', $uri);
|
||||||
|
|
||||||
|
@ -391,37 +391,37 @@ class Probe {
|
||||||
/// @todo Do we need the prefix "acct:" or "acct://"?
|
/// @todo Do we need the prefix "acct:" or "acct://"?
|
||||||
|
|
||||||
foreach ($lrdd AS $key => $link) {
|
foreach ($lrdd AS $key => $link) {
|
||||||
if ($webfinger)
|
if ($webfinger) {
|
||||||
continue;
|
continue;
|
||||||
|
}
|
||||||
|
if (!in_array($key, array("lrdd", "lrdd-xml", "lrdd-json"))) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
// At first try it with the given uri
|
||||||
|
$path = str_replace('{uri}', urlencode($uri), $link);
|
||||||
|
$webfinger = self::webfinger($path);
|
||||||
|
|
||||||
if (!in_array($key, array("lrdd", "lrdd-xml", "lrdd-json")))
|
// We cannot be sure that the detected address was correct, so we don't use the values
|
||||||
continue;
|
if ($webfinger AND ($uri != $addr)) {
|
||||||
|
$nick = "";
|
||||||
|
$addr = "";
|
||||||
|
}
|
||||||
|
|
||||||
// Try webfinger with the address (user@domain.tld)
|
// Try webfinger with the address (user@domain.tld)
|
||||||
$path = str_replace('{uri}', urlencode($addr), $link);
|
if (!$webfinger) {
|
||||||
$webfinger = self::webfinger($path);
|
$path = str_replace('{uri}', urlencode($addr), $link);
|
||||||
|
$webfinger = self::webfinger($path);
|
||||||
|
}
|
||||||
|
|
||||||
// Mastodon needs to have it with "acct:"
|
// Mastodon needs to have it with "acct:"
|
||||||
if (!$webfinger) {
|
if (!$webfinger) {
|
||||||
$path = str_replace('{uri}', urlencode("acct:".$addr), $link);
|
$path = str_replace('{uri}', urlencode("acct:".$addr), $link);
|
||||||
$webfinger = self::webfinger($path);
|
$webfinger = self::webfinger($path);
|
||||||
}
|
}
|
||||||
|
|
||||||
// If webfinger wasn't successful then try it with the URL - possibly in the format https://...
|
|
||||||
if (!$webfinger AND ($uri != $addr)) {
|
|
||||||
$path = str_replace('{uri}', urlencode($uri), $link);
|
|
||||||
$webfinger = self::webfinger($path);
|
|
||||||
|
|
||||||
// Since the detection with the address wasn't successful, we delete it.
|
|
||||||
if ($webfinger) {
|
|
||||||
$nick = "";
|
|
||||||
$addr = "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
if (!$webfinger)
|
if (!$webfinger) {
|
||||||
return self::feed($uri);
|
return self::feed($uri);
|
||||||
|
}
|
||||||
|
|
||||||
$result = false;
|
$result = false;
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,13 @@ require_once('include/Scrape.php');
|
||||||
|
|
||||||
function probe_content(App $a) {
|
function probe_content(App $a) {
|
||||||
|
|
||||||
|
if (!local_user()) {
|
||||||
|
http_status_exit(403,
|
||||||
|
array("title" => t("Public access denied."),
|
||||||
|
"description" => t("Only logged in users are permitted to perform a probing.")));
|
||||||
|
killme();
|
||||||
|
}
|
||||||
|
|
||||||
$o .= '<h3>Probe Diagnostic</h3>';
|
$o .= '<h3>Probe Diagnostic</h3>';
|
||||||
|
|
||||||
$o .= '<form action="probe" method="get">';
|
$o .= '<form action="probe" method="get">';
|
||||||
|
|
|
@ -3,6 +3,13 @@ require_once("include/Probe.php");
|
||||||
|
|
||||||
function webfinger_content(App $a) {
|
function webfinger_content(App $a) {
|
||||||
|
|
||||||
|
if (!local_user()) {
|
||||||
|
http_status_exit(403,
|
||||||
|
array("title" => t("Public access denied."),
|
||||||
|
"description" => t("Only logged in users are permitted to perform a probing.")));
|
||||||
|
killme();
|
||||||
|
}
|
||||||
|
|
||||||
$o .= '<h3>Webfinger Diagnostic</h3>';
|
$o .= '<h3>Webfinger Diagnostic</h3>';
|
||||||
|
|
||||||
$o .= '<form action="webfinger" method="get">';
|
$o .= '<form action="webfinger" method="get">';
|
||||||
|
|
Loading…
Reference in a new issue