]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
[CORE][QUEUE] Error checking and type declaration on handling notice queue events
authorMiguel Dantas <biodantasgs@gmail.com>
Wed, 7 Aug 2019 21:47:17 +0000 (22:47 +0100)
committerDiogo Cordeiro <diogo@fc.up.pt>
Thu, 8 Aug 2019 01:44:14 +0000 (02:44 +0100)
Patch submitted by XRevan86

lib/imqueuehandler.php
lib/pingqueuehandler.php
lib/pluginqueuehandler.php
lib/queuehandler.php
lib/smsqueuehandler.php
plugins/OStatus/lib/ostatusqueuehandler.php
plugins/OStatus/lib/pushinqueuehandler.php
plugins/RSSCloud/lib/rsscloudqueuehandler.php
plugins/SubMirror/lib/mirrorqueuehandler.php
plugins/TwitterBridge/lib/twitterqueuehandler.php

index 2df25ac9f4fb36b522d7a2df8a4e52374e29ce23..b1eeb0ac3656d46b7153a38c3f7eb918e5831cb4 100644 (file)
@@ -17,7 +17,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
+defined('GNUSOCIAL') || die();
 
 /**
  * Common superclass for all IM sending queue handlers.
@@ -35,8 +35,13 @@ class ImQueueHandler extends QueueHandler
      * @param Notice $notice
      * @return boolean success
      */
-    function handle($notice)
+    function handle($notice): bool
     {
+        if (!($notice instanceof Notice)) {
+            common_log(LOG_ERR, "Got a bogus notice, not broadcasting");
+            return true;
+        }
+
         $this->plugin->broadcastNotice($notice);
         if ($notice->isLocal()) {
             $this->plugin->publicNotice($notice);
index 4e4d74cb1a6ef35f1910905aee18a287cabb79b4..7f5b11ea6a9136b7db2e4c12edbfd5e930b85e33 100644 (file)
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-if (!defined('STATUSNET') && !defined('LACONICA')) {
-    exit(1);
-}
+defined('GNUSOCIAL') || die();
 
 /**
  * Queue handler for pushing new notices to ping servers.
  */
 class PingQueueHandler extends QueueHandler {
 
-    function transport() {
+    function transport()
+    {
         return 'ping';
     }
 
-    function handle($notice) {
+    function handle($notice): bool
+    {
+        if (!($notice instanceof Notice)) {
+            common_log(LOG_ERR, "Got a bogus notice, not broadcasting");
+            return true;
+        }
+
         require_once INSTALLDIR . '/lib/ping.php';
         return ping_broadcast_notice($notice);
     }
index dcd07d7208800bbf1fe2e907bc3ce0e5e85e4a8a..46b61d6a96f6e37732a2f241012fdf357b649559 100644 (file)
@@ -17,7 +17,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-if (!defined('GNUSOCIAL')) { exit(1); }
+defined('GNUSOCIAL') || die();
 
 /**
  * Queue handler for letting plugins handle stuff.
@@ -40,8 +40,13 @@ class PluginQueueHandler extends QueueHandler
         return 'plugin';
     }
 
-    function handle($notice)
+    function handle($notice): bool
     {
+        if (!($notice instanceof Notice)) {
+            common_log(LOG_ERR, "Got a bogus notice, not broadcasting");
+            return true;
+        }
+
         try {
             Event::handle('HandleQueuedNotice', array(&$notice));
         } catch (NoProfileException $unp) {
index 2194dd1618b088a5796f6e4664c4053974c30060..47161a987cc3f6298f48190b5ab4d31c3c10468a 100644 (file)
@@ -46,7 +46,7 @@ class QueueHandler
      * @param mixed $object
      * @return boolean true on success, false on failure
      */
-    function handle($object)
+    function handle($object): bool
     {
         return true;
     }
index 6085d2b4ac545b63643979c043a23fe107eba774..1df7011e3c2399bae3e7f7f6a3d65b3e8849e803 100644 (file)
@@ -17,9 +17,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-if (!defined('STATUSNET') && !defined('LACONICA')) {
-    exit(1);
-}
+defined('GNUSOCIAL') || die();
 
 /**
  * Queue handler for pushing new notices to local subscribers using SMS.
@@ -31,8 +29,13 @@ class SmsQueueHandler extends QueueHandler
         return 'sms';
     }
 
-    function handle($notice)
+    function handle($notice): bool
     {
+        if (!($notice instanceof Notice)) {
+            common_log(LOG_ERR, "Got a bogus notice, not broadcasting");
+            return true;
+        }
+
        require_once(INSTALLDIR.'/lib/mail.php');
         return mail_broadcast_notice_sms($notice);
     }
index 3ad6b3b2aba8089d2ca2a8c4b654733c990dab46..74db1924fa452a0b2028a6613743480f80b9c2f7 100644 (file)
@@ -17,9 +17,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-if (!defined('STATUSNET')) {
-    exit(1);
-}
+defined('GNUSOCIAL') || die();
 
 /**
  * Prepare WebSub and Salmon distributions for an outgoing message.
@@ -46,9 +44,12 @@ class OStatusQueueHandler extends QueueHandler
         return 'ostatus';
     }
 
-    function handle($notice)
+    function handle($notice): bool
     {
-        assert($notice instanceof Notice);
+        if (!($notice instanceof Notice)) {
+            common_log(LOG_ERR, "Got a bogus notice, not distributing");
+            return true;
+        }
 
         $this->notice = $notice;
         $this->user = User::getKV('id', $notice->profile_id);
index 4946186cf4199b6257ace3c105752d5b0d487716..0ffb43b14af52a8840f6fcaba3a0ff195d717b89 100644 (file)
@@ -17,7 +17,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-if (!defined('GNUSOCIAL')) { exit(1); }
+defined('GNUSOCIAL') || die();
 
 /**
  * Process a feed distribution POST from a WebSub (previously PuSH) hub.
@@ -31,9 +31,12 @@ class PushInQueueHandler extends QueueHandler
         return 'pushin';
     }
 
-    function handle($data)
+    function handle($data): bool
     {
-        assert(is_array($data));
+        if (!is_array($data)) {
+            common_log(LOG_ERR, "Got bogus data, not processing");
+            return true;
+        }
 
         $feedsub_id = $data['feedsub_id'];
         $post = $data['post'];
index 8a09977489b3d463d41f0b14d1568470ae532b81..63f6559412f718e401957c5f66bff45462fa95af 100644 (file)
@@ -17,7 +17,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
+defined('GNUSOCIAL') || die();
 
 class RSSCloudQueueHandler extends QueueHandler
 {
@@ -26,8 +26,13 @@ class RSSCloudQueueHandler extends QueueHandler
         return 'rsscloud';
     }
 
-    function handle($notice)
+    function handle($notice): bool
     {
+        if (!($notice instanceof Notice)) {
+            common_log(LOG_ERR, "Got a bogus notice, not using");
+            return true;
+        }
+
         try {
             $profile = $notice->getProfile();
         } catch (Exception $e) {
index 550986b444ce1a4be3646252c00a0f87d8836e9f..abdc259d8f18ce4c81a85425ed5921951f028ea4 100644 (file)
@@ -17,6 +17,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
+defined('GNUSOCIAL') || die();
+
 /**
  * Check for subscription mirroring options on each newly seen post!
  *
@@ -30,8 +32,13 @@ class MirrorQueueHandler extends QueueHandler
         return 'mirror';
     }
 
-    function handle($notice)
+    function handle($notice): bool
     {
+        if (!($notice instanceof Notice)) {
+            common_log(LOG_ERR, "Got a bogus notice, not mirroring");
+            return true;
+        }
+
         $mirror = new SubMirror();
         $mirror->subscribed = $notice->profile_id;
         if ($mirror->find()) {
index bba1b8b2bc80f00aae961646daa769e38e1abafc..2c6c36906f9921a8a2ec702d077e08fdf72100ff 100644 (file)
@@ -17,7 +17,7 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 
-if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
+defined('GNUSOCIAL') || die();
 
 require_once dirname(__DIR__) . '/twitter.php';
 
@@ -28,8 +28,13 @@ class TwitterQueueHandler extends QueueHandler
         return 'twitter';
     }
 
-    function handle($notice)
+    function handle($notice): bool
     {
+        if (!($notice instanceof Notice)) {
+            common_log(LOG_ERR, "Got a bogus notice, not broadcasting");
+            return true;
+        }
+
         $ok = broadcast_twitter($notice);
         return $ok || common_config('twitter', 'ignore_errors');
     }