Merge pull request #11747 from annando/fixes

Emergency fixes to fix a bunch of fatal errors
This commit is contained in:
Philipp 2022-07-17 16:34:53 +02:00 committed by GitHub
commit 6175f9086e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 31 additions and 27 deletions

View File

@ -359,7 +359,7 @@ class Contact
* @throws HTTPException\InternalServerErrorException * @throws HTTPException\InternalServerErrorException
* @throws \ImagickException * @throws \ImagickException
*/ */
public static function isFollowerByURL(string $url, uid $uid): bool public static function isFollowerByURL(string $url, int $uid): bool
{ {
$cid = self::getIdForURL($url, $uid); $cid = self::getIdForURL($url, $uid);
@ -1169,11 +1169,11 @@ class Contact
* @throws HTTPException\InternalServerErrorException * @throws HTTPException\InternalServerErrorException
* @throws \ImagickException * @throws \ImagickException
*/ */
public static function getIdForURL(string $url, int $uid = 0, $update = null, array $default = []): int public static function getIdForURL(string $url = null, int $uid = 0, $update = null, array $default = []): int
{ {
$contact_id = 0; $contact_id = 0;
if ($url == '') { if (empty($url)) {
Logger::notice('Empty url, quitting', ['url' => $url, 'user' => $uid, 'default' => $default]); Logger::notice('Empty url, quitting', ['url' => $url, 'user' => $uid, 'default' => $default]);
return 0; return 0;
} }

View File

@ -900,7 +900,7 @@ class Processor
} }
// Store send a follow request for every reshare - but only when the item had been stored // Store send a follow request for every reshare - but only when the item had been stored
if ($stored && ($item['private'] != Item::PRIVATE) && ($item['gravity'] == GRAVITY_PARENT) && ($item['author-link'] != $item['owner-link'])) { if ($stored && ($item['private'] != Item::PRIVATE) && ($item['gravity'] == GRAVITY_PARENT) && !empty($item['author-link']) && ($item['author-link'] != $item['owner-link'])) {
$author = APContact::getByURL($item['owner-link'], false); $author = APContact::getByURL($item['owner-link'], false);
// We send automatic follow requests for reshared messages. (We don't need though for forum posts) // We send automatic follow requests for reshared messages. (We don't need though for forum posts)
if ($author['type'] != 'Group') { if ($author['type'] != 'Group') {

View File

@ -48,10 +48,10 @@ use Friendica\Network\Probe;
use Friendica\Util\Crypto; use Friendica\Util\Crypto;
use Friendica\Util\DateTimeFormat; use Friendica\Util\DateTimeFormat;
use Friendica\Util\Images; use Friendica\Util\Images;
use Friendica\Util\Network;
use Friendica\Util\Proxy; use Friendica\Util\Proxy;
use Friendica\Util\Strings; use Friendica\Util\Strings;
use Friendica\Util\XML; use Friendica\Util\XML;
use GuzzleHttp\Psr7\Uri;
/** /**
* This class contain functions to create and send DFRN XML files * This class contain functions to create and send DFRN XML files
@ -1013,7 +1013,7 @@ class DFRN
$path_parts = explode('/', $parts['path']); $path_parts = explode('/', $parts['path']);
array_pop($path_parts); array_pop($path_parts);
$parts['path'] = implode('/', $path_parts); $parts['path'] = implode('/', $path_parts);
$contact['batch'] = Network::unparseURL($parts); $contact['batch'] = Uri::fromParts($parts);
} }
$dest_url = ($public_batch ? $contact['batch'] : $contact['notify']); $dest_url = ($public_batch ? $contact['batch'] : $contact['notify']);

View File

@ -50,6 +50,7 @@ use Friendica\Util\Network;
use Friendica\Util\Strings; use Friendica\Util\Strings;
use Friendica\Util\XML; use Friendica\Util\XML;
use Friendica\Worker\Delivery; use Friendica\Worker\Delivery;
use GuzzleHttp\Psr7\Uri;
use SimpleXMLElement; use SimpleXMLElement;
/** /**
@ -755,14 +756,14 @@ class Diaspora
* @throws \Friendica\Network\HTTPException\InternalServerErrorException * @throws \Friendica\Network\HTTPException\InternalServerErrorException
* @throws \ImagickException * @throws \ImagickException
*/ */
private static function key(string $handle): string private static function key(string $handle = null): string
{ {
$handle = strval($handle); $handle = strval($handle);
Logger::notice("Fetching diaspora key for: " . $handle); Logger::notice("Fetching diaspora key for: " . $handle);
$fcontact = FContact::getByURL($handle); $fcontact = FContact::getByURL($handle);
if ($fcontact) { if (!empty($fcontact['pubkey'])) {
return $fcontact['pubkey']; return $fcontact['pubkey'];
} }
@ -1417,7 +1418,7 @@ class Diaspora
$parts = parse_url($person['url']); $parts = parse_url($person['url']);
unset($parts['path']); unset($parts['path']);
$host_url = Network::unparseURL($parts); $host_url = Uri::fromParts($parts);
return $host_url . '/objects/' . $guid; return $host_url . '/objects/' . $guid;
} }
@ -4007,11 +4008,11 @@ class Diaspora
* Sends profile data * Sends profile data
* *
* @param int $uid The user id * @param int $uid The user id
* @param bool $recips optional, default false * @param array $recips optional, default empty array
* @return void * @return void
* @throws \Exception * @throws \Exception
*/ */
public static function sendProfile(int $uid, bool $recips = false) public static function sendProfile(int $uid, array $recips = [])
{ {
if (!$uid) { if (!$uid) {
return; return;

View File

@ -116,12 +116,12 @@ class Email
/** /**
* @param Connection|resource $mbox mailbox * @param Connection|resource $mbox mailbox
* @param integer $uid user id * @param string $sequence
* @return mixed * @return mixed
*/ */
public static function messageMeta($mbox, int $uid) public static function messageMeta($mbox, string $sequence)
{ {
$ret = (($mbox && $uid) ? @imap_fetch_overview($mbox, $uid, FT_UID) : [[]]); // POSSIBLE CLEANUP --> array(array()) is probably redundant now $ret = (($mbox && $sequence) ? @imap_fetch_overview($mbox, $sequence, FT_UID) : [[]]); // POSSIBLE CLEANUP --> array(array()) is probably redundant now
return (count($ret)) ? $ret : []; return (count($ret)) ? $ret : [];
} }
@ -296,6 +296,7 @@ class Email
} }
return $x; return $x;
} }
return '';
} }
/** /**
@ -569,9 +570,9 @@ class Email
* Removes signature from message * Removes signature from message
* *
* @param string $message Unfiltered message * @param string $message Unfiltered message
* @return string Message with no signature * @return array Message array with no signature (elements "body" and "sig")
*/ */
private static function removeSig(string $message): string private static function removeSig(string $message): array
{ {
$sigpos = strrpos($message, "\n-- \n"); $sigpos = strrpos($message, "\n-- \n");
$quotepos = strrpos($message, "[/quote]"); $quotepos = strrpos($message, "[/quote]");
@ -662,7 +663,7 @@ class Email
return implode("\n", $lines); return implode("\n", $lines);
} }
private static function convertQuote(strng $body, string $reply): string private static function convertQuote(string $body, string $reply): string
{ {
// Convert Quotes // Convert Quotes
$arrbody = explode("\n", trim($body)); $arrbody = explode("\n", trim($body));

View File

@ -42,9 +42,9 @@ class XML
* @param bool $remove_header Should the XML header be removed or not? * @param bool $remove_header Should the XML header be removed or not?
* @param array $namespaces List of namespaces * @param array $namespaces List of namespaces
* @param bool $root interally used parameter. Mustn't be used from outside. * @param bool $root interally used parameter. Mustn't be used from outside.
* @return void * @return string
*/ */
public static function fromArray(array $array, &$xml, bool $remove_header = false, array $namespaces = [], bool $root = true) public static function fromArray(array $array, &$xml, bool $remove_header = false, array $namespaces = [], bool $root = true): string
{ {
if ($root) { if ($root) {
foreach ($array as $key => $value) { foreach ($array as $key => $value) {
@ -130,19 +130,20 @@ class XML
self::fromArray($value, $element, $remove_header, $namespaces, false); self::fromArray($value, $element, $remove_header, $namespaces, false);
} }
} }
return '';
} }
/** /**
* Copies an XML object * Copies an XML object
* *
* @param object $source The XML source * @param object|string $source The XML source
* @param object $target The XML target * @param object $target The XML target
* @param string $elementname Name of the XML element of the target * @param string $elementname Name of the XML element of the target
* @return void * @return void
*/ */
public static function copy(&$source, &$target, string $elementname) public static function copy(&$source, &$target, string $elementname)
{ {
if (count($source->children()) == 0) { if (is_string($source)) {
$target->addChild($elementname, self::escape($source)); $target->addChild($elementname, self::escape($source));
} else { } else {
$child = $target->addChild($elementname); $child = $target->addChild($elementname);
@ -184,9 +185,9 @@ class XML
* @param array $attributes Array containing the attributes * @param array $attributes Array containing the attributes
* @return void * @return void
*/ */
public static function addElement(DOMDocument $doc, DOMElement &$parent, string $element, string $value = '', array $attributes = []) public static function addElement(DOMDocument $doc, DOMElement &$parent, string $element, string $value = null, array $attributes = [])
{ {
$element = self::createElement($doc, $element, $value, $attributes); $element = self::createElement($doc, $element, $value ?? '', $attributes);
$parent->appendChild($element); $parent->appendChild($element);
} }
@ -273,6 +274,7 @@ class XML
return []; return [];
} }
$parent = [];
libxml_use_internal_errors(true); libxml_use_internal_errors(true);
libxml_clear_errors(); libxml_clear_errors();