mirror of
https://github.com/friendica/friendica
synced 2025-01-05 07:19:39 +01:00
Continued:
- changed back to 'return false;' as other methods heavily rely on false instead of an empty array as pointed out by @heluecht@pirati.ca - $fetched_contact should be initialized as an empty array, let's not make this code more crazier than it already is (see APContact::getByURL())
This commit is contained in:
parent
c467bff79f
commit
36d56a4041
3 changed files with 17 additions and 16 deletions
|
@ -124,7 +124,7 @@ class APContact
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
$fetched_contact = false;
|
$fetched_contact = [];
|
||||||
|
|
||||||
if (empty($update)) {
|
if (empty($update)) {
|
||||||
if (is_null($update)) {
|
if (is_null($update)) {
|
||||||
|
@ -206,7 +206,7 @@ class APContact
|
||||||
|
|
||||||
if ($failed) {
|
if ($failed) {
|
||||||
self::markForArchival($fetched_contact ?: []);
|
self::markForArchival($fetched_contact ?: []);
|
||||||
return $fetched_contact ?? [];
|
return $fetched_contact;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -275,7 +275,7 @@ class APContact
|
||||||
|
|
||||||
// Quit if none of the basic values are set
|
// Quit if none of the basic values are set
|
||||||
if (empty($apcontact['url']) || empty($apcontact['type']) || (($apcontact['type'] != 'Tombstone') && empty($apcontact['inbox']))) {
|
if (empty($apcontact['url']) || empty($apcontact['type']) || (($apcontact['type'] != 'Tombstone') && empty($apcontact['inbox']))) {
|
||||||
return $fetched_contact ?? [];
|
return $fetched_contact;
|
||||||
} elseif ($apcontact['type'] == 'Tombstone') {
|
} elseif ($apcontact['type'] == 'Tombstone') {
|
||||||
// The "inbox" field must have a content
|
// The "inbox" field must have a content
|
||||||
$apcontact['inbox'] = '';
|
$apcontact['inbox'] = '';
|
||||||
|
@ -283,7 +283,7 @@ class APContact
|
||||||
|
|
||||||
// Quit if this doesn't seem to be an account at all
|
// Quit if this doesn't seem to be an account at all
|
||||||
if (!in_array($apcontact['type'], ActivityPub::ACCOUNT_TYPES)) {
|
if (!in_array($apcontact['type'], ActivityPub::ACCOUNT_TYPES)) {
|
||||||
return $fetched_contact ?? [];
|
return $fetched_contact;
|
||||||
}
|
}
|
||||||
|
|
||||||
$parts = parse_url($apcontact['url']);
|
$parts = parse_url($apcontact['url']);
|
||||||
|
|
|
@ -59,12 +59,13 @@ class Notify extends BaseModule
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function dispatchPublic($postdata)
|
private static function dispatchPublic(array $postdata)
|
||||||
{
|
{
|
||||||
$msg = Diaspora::decodeRaw($postdata, '', true);
|
$msg = Diaspora::decodeRaw($postdata, '', true);
|
||||||
if (!$msg) {
|
if (!is_array($msg)) {
|
||||||
// We have to fail silently to be able to hand it over to the salmon parser
|
// We have to fail silently to be able to hand it over to the salmon parser
|
||||||
return false;
|
Logger::warning('Diaspora::decodeRaw() has failed for some reason.');
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fetch the corresponding public contact
|
// Fetch the corresponding public contact
|
||||||
|
@ -88,10 +89,10 @@ class Notify extends BaseModule
|
||||||
System::xmlExit($ret, 'Done');
|
System::xmlExit($ret, 'Done');
|
||||||
}
|
}
|
||||||
|
|
||||||
private static function dispatchPrivate($user, $postdata)
|
private static function dispatchPrivate(array $user, array $postdata)
|
||||||
{
|
{
|
||||||
$msg = Diaspora::decodeRaw($postdata, $user['prvkey'] ?? '');
|
$msg = Diaspora::decodeRaw($postdata, $user['prvkey'] ?? '');
|
||||||
if (!$msg) {
|
if (!is_array($msg)) {
|
||||||
System::xmlExit(4, 'Unable to parse message');
|
System::xmlExit(4, 'Unable to parse message');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -203,20 +203,20 @@ class Diaspora
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Decodes incoming Diaspora message in the new format
|
* Decodes incoming Diaspora message in the new format. This method returns false on an error.
|
||||||
*
|
*
|
||||||
* @param string $raw raw post message
|
* @param string $raw raw post message
|
||||||
* @param string $privKey The private key of the importer
|
* @param string $privKey The private key of the importer
|
||||||
* @param boolean $no_exit Don't do an http exit on error
|
* @param boolean $no_exit Don't do an http exit on error
|
||||||
*
|
*
|
||||||
* @return array
|
* @return bool|array
|
||||||
* 'message' -> decoded Diaspora XML message
|
* 'message' -> decoded Diaspora XML message
|
||||||
* 'author' -> author diaspora handle
|
* 'author' -> author diaspora handle
|
||||||
* 'key' -> author public key (converted to pkcs#8)
|
* 'key' -> author public key (converted to pkcs#8)
|
||||||
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
||||||
* @throws \ImagickException
|
* @throws \ImagickException
|
||||||
*/
|
*/
|
||||||
public static function decodeRaw(string $raw, string $privKey = '', bool $no_exit = false): array
|
public static function decodeRaw(string $raw, string $privKey = '', bool $no_exit = false)
|
||||||
{
|
{
|
||||||
$data = json_decode($raw);
|
$data = json_decode($raw);
|
||||||
|
|
||||||
|
@ -232,7 +232,7 @@ class Diaspora
|
||||||
if (!is_object($j_outer_key_bundle)) {
|
if (!is_object($j_outer_key_bundle)) {
|
||||||
Logger::notice('Outer Salmon did not verify. Discarding.');
|
Logger::notice('Outer Salmon did not verify. Discarding.');
|
||||||
if ($no_exit) {
|
if ($no_exit) {
|
||||||
return [];
|
return false;
|
||||||
} else {
|
} else {
|
||||||
throw new \Friendica\Network\HTTPException\BadRequestException();
|
throw new \Friendica\Network\HTTPException\BadRequestException();
|
||||||
}
|
}
|
||||||
|
@ -251,7 +251,7 @@ class Diaspora
|
||||||
if (!is_object($basedom)) {
|
if (!is_object($basedom)) {
|
||||||
Logger::notice('Received data does not seem to be an XML. Discarding. '.$xml);
|
Logger::notice('Received data does not seem to be an XML. Discarding. '.$xml);
|
||||||
if ($no_exit) {
|
if ($no_exit) {
|
||||||
return [];
|
return false;
|
||||||
} else {
|
} else {
|
||||||
throw new \Friendica\Network\HTTPException\BadRequestException();
|
throw new \Friendica\Network\HTTPException\BadRequestException();
|
||||||
}
|
}
|
||||||
|
@ -277,7 +277,7 @@ class Diaspora
|
||||||
if ($author_addr == '') {
|
if ($author_addr == '') {
|
||||||
Logger::notice('No author could be decoded. Discarding. Message: ' . $xml);
|
Logger::notice('No author could be decoded. Discarding. Message: ' . $xml);
|
||||||
if ($no_exit) {
|
if ($no_exit) {
|
||||||
return [];
|
return false;
|
||||||
} else {
|
} else {
|
||||||
throw new \Friendica\Network\HTTPException\BadRequestException();
|
throw new \Friendica\Network\HTTPException\BadRequestException();
|
||||||
}
|
}
|
||||||
|
@ -287,7 +287,7 @@ class Diaspora
|
||||||
if ($key == '') {
|
if ($key == '') {
|
||||||
Logger::notice("Couldn't get a key for handle " . $author_addr . ". Discarding.");
|
Logger::notice("Couldn't get a key for handle " . $author_addr . ". Discarding.");
|
||||||
if ($no_exit) {
|
if ($no_exit) {
|
||||||
return [];
|
return false;
|
||||||
} else {
|
} else {
|
||||||
throw new \Friendica\Network\HTTPException\BadRequestException();
|
throw new \Friendica\Network\HTTPException\BadRequestException();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue