]> git.mxchange.org Git - friendica.git/commitdiff
Config for receiver / fix fatals
authorMichael <heluecht@pirati.ca>
Thu, 28 Jul 2022 21:16:42 +0000 (21:16 +0000)
committerMichael <heluecht@pirati.ca>
Thu, 28 Jul 2022 21:16:42 +0000 (21:16 +0000)
src/Module/Photo.php
src/Protocol/ActivityPub/Processor.php
src/Protocol/ActivityPub/Receiver.php
src/Protocol/Diaspora.php
static/defaults.config.php

index d1b4b9629e8608ff7a1413aa851be76aacf537d0..c521d2be828bc1ec40693b64ffecbbb4b5f8041a 100644 (file)
@@ -352,11 +352,11 @@ class Photo extends BaseModule
                                }
                                if (empty($mimetext)) {
                                        if ($customsize <= Proxy::PIXEL_MICRO) {
-                                               $url = Contact::getDefaultAvatar($contact, Proxy::SIZE_MICRO);
+                                               $url = Contact::getDefaultAvatar($contact ?: [], Proxy::SIZE_MICRO);
                                        } elseif ($customsize <= Proxy::PIXEL_THUMB) {
-                                               $url = Contact::getDefaultAvatar($contact, Proxy::SIZE_THUMB);
+                                               $url = Contact::getDefaultAvatar($contact ?: [], Proxy::SIZE_THUMB);
                                        } else {
-                                               $url = Contact::getDefaultAvatar($contact, Proxy::SIZE_SMALL);
+                                               $url = Contact::getDefaultAvatar($contact ?: [], Proxy::SIZE_SMALL);
                                        }
                                }
                                return MPhoto::createPhotoForExternalResource($url, 0, $mimetext);
index 3b31e6d3c4bd5c5168da74700f4e5161290fd541..60dd42cb49349915ef1baee30a72cd6286689398 100644 (file)
@@ -303,7 +303,7 @@ class Processor
                if (empty($activity['directmessage']) && ($activity['id'] != $activity['reply-to-id']) && !Post::exists(['uri' => $activity['reply-to-id']])) {
                        $recursion_depth = $activity['recursion-depth'] ?? 0;
                        Logger::notice('Parent not found. Try to refetch it.', ['parent' => $activity['reply-to-id'], 'recursion-depth' => $recursion_depth]);
-                       if ($recursion_depth < 10) {
+                       if ($recursion_depth < DI::config()->get('system', 'max_recursion_depth')) {
                                $result = self::fetchMissingActivity($activity['reply-to-id'], $activity, '', Receiver::COMPLETION_AUTO);
                                if (empty($result) && self::isActivityGone($activity['reply-to-id'])) {
                                        // Recursively delete this and all depending entries
index f09541b13d715dc60e350cc614416b983f32efd0..600fe315240a86ed9cd17cdbcc311206c9df9970 100644 (file)
@@ -592,7 +592,7 @@ class Receiver
                        return;
                }
 
-               if (!empty($object_data['entry-id']) && ($push || ($activity['completion-mode'] == self::COMPLETION_RELAY))) {
+               if (!empty($object_data['entry-id']) && DI::config()->get('system', 'decoupled_receiver') && ($push || ($activity['completion-mode'] == self::COMPLETION_RELAY))) {
                        // We delay by 5 seconds to allow to accumulate all receivers
                        $delayed = date(DateTimeFormat::MYSQL, time() + 5);
                        Logger::debug('Initiate processing', ['id' => $object_data['entry-id'], 'uri' => $object_data['object_id']]);
index 62c8ce71c48093edc372cb00c9c5a466ef8900f4..5c0f9b81314cfda8edc1abf20cea431f3197656f 100644 (file)
@@ -3114,7 +3114,7 @@ class Diaspora
                        Logger::notice('Empty addr', ['contact' => $contact ?? [], 'callstack' => System::callstack(20)]);
                }
 
-               $envelope = self::buildMessage($msg, $owner, $contact, $owner['uprvkey'], $pubkey, $public_batch);
+               $envelope = self::buildMessage($msg, $owner, $contact, $owner['uprvkey'], $pubkey ?? '', $public_batch);
 
                $return_code = self::transmit($owner, $contact, $envelope, $public_batch, $guid);
 
index 1876ea90d742985f4154b00546a51c397468d07c..a8a23ea9e9e7abaac9c374a7216d10bd4ffac18b 100644 (file)
@@ -164,6 +164,10 @@ return [
                // Whether to use Memcache, Memcached, Redis or APCu to store temporary cache.
                'cache_driver' => 'database',
 
+               // decoupled_receiver (Boolean)
+               // Decouple incoming AP posts by doing the processing in the background.
+               'decoupled_receiver' => true,
+
                // distributed_cache_driver (database|memcache|memcached|redis)
                // Whether to use database, Memcache, Memcached or Redis as a distributed cache.
                'distributed_cache_driver' => 'database',
@@ -416,6 +420,10 @@ return [
                // Maximum number of concurrent database processes for foreground tasks.
                'max_processes_frontend' => 20,
 
+               // max_recursion_depth (Integer)
+               // Maximum recursion depth when fetching posts until the job is delegated to a worker task.
+               'max_recursion_depth' => 10,
+
                // maximagesize (Integer)
                // Maximum size in bytes of an uploaded photo.
                'maximagesize' => 800000,