]> git.mxchange.org Git - friendica.git/commitdiff
Optimized query for nodeinfo, better way to analyze posting problems with DFRN
authorMichael <heluecht@pirati.ca>
Sat, 4 Feb 2017 16:16:15 +0000 (16:16 +0000)
committerMichael <heluecht@pirati.ca>
Sat, 4 Feb 2017 16:16:15 +0000 (16:16 +0000)
include/delivery.php
include/dfrn.php
include/queue.php
mod/nodeinfo.php

index 5000a1edb908a77e9fbcc6053cbb8921c40ba4c2..8ccb19cedc187842e156d4efb919af46ead5cfae 100644 (file)
@@ -398,7 +398,7 @@ function delivery_run(&$argv, &$argc){
 
                                logger('notifier: dfrn_delivery to '.$contact["url"].' with guid '.$target_item["guid"].' returns '.$deliver_status);
 
-                               if ($deliver_status == (-1)) {
+                               if ($deliver_status < 0) {
                                        logger('notifier: delivery failed: queuing message');
                                        add_to_queue($contact['id'],NETWORK_DFRN,$atom);
 
index fbf6aea5615774b3f7cccac17fdd442f19598095..30057001cd45de059cc248c8edbbc5ad27d02c4c 100644 (file)
@@ -916,14 +916,14 @@ class dfrn {
                $ret = z_fetch_url($url);
 
                if ($ret['errno'] == CURLE_OPERATION_TIMEDOUT) {
-                       return(-1); // timed out
+                       return -2; // timed out
                }
 
                $xml = $ret['body'];
 
                $curl_stat = $a->get_curl_code();
                if(! $curl_stat)
-                       return(-1); // timed out
+                       return -3; // timed out
 
                logger('dfrn_deliver: ' . $xml, LOGGER_DATA);
 
@@ -1023,24 +1023,24 @@ class dfrn {
                                                $key = Crypto::createNewRandomKey();
                                        } catch (CryptoTestFailed $ex) {
                                                logger('Cannot safely create a key');
-                                               return -1;
+                                               return -4;
                                        } catch (CannotPerformOperation $ex) {
                                                logger('Cannot safely create a key');
-                                               return -1;
+                                               return -5;
                                        }
                                        try {
                                                $data = Crypto::encrypt($postvars['data'], $key);
                                        } catch (CryptoTestFailed $ex) {
                                                logger('Cannot safely perform encryption');
-                                               return -1;
+                                               return -6;
                                        } catch (CannotPerformOperation $ex) {
                                                logger('Cannot safely perform encryption');
-                                               return -1;
+                                               return -7;
                                        }
                                        break;
                                default:
                                        logger("rino: invalid requested verision '$rino_remote_version'");
-                                       return -1;
+                                       return -8;
                        }
 
                        $postvars['rino'] = $rino_remote_version;
@@ -1074,16 +1074,16 @@ class dfrn {
 
                logger('dfrn_deliver: ' . "SENDING: " . print_r($postvars,true), LOGGER_DATA);
 
-               $xml = post_url($contact['notify'],$postvars);
+               $xml = post_url($contact['notify'], $postvars);
 
                logger('dfrn_deliver: ' . "RECEIVED: " . $xml, LOGGER_DATA);
 
                $curl_stat = $a->get_curl_code();
                if((! $curl_stat) || (! strlen($xml)))
-                       return(-1); // timed out
+                       return -9; // timed out
 
                if(($curl_stat == 503) && (stristr($a->get_curl_headers(),'retry-after')))
-                       return(-1);
+                       return -10;
 
                if(strpos($xml,'<?xml') === false) {
                        logger('dfrn_deliver: phase 2: no valid XML returned');
index 3ccceb475095c5a7f9104e56fe35e0b1d4f33fc4..7e2657fa54e88784c112c12c798c713b0865e864 100644 (file)
@@ -38,10 +38,11 @@ function queue_run(&$argv, &$argc){
 
        load_hooks();
 
-       if($argc > 1)
+       if ($argc > 1) {
                $queue_id = intval($argv[1]);
-       else
+       } else {
                $queue_id = 0;
+       }
 
        $cachekey_deadguy = 'queue_run:deadguy:';
        $cachekey_server = 'queue_run:server:';
@@ -64,7 +65,7 @@ function queue_run(&$argv, &$argc){
                        foreach ($r as $rr) {
                                logger('queue: deliverq');
                                proc_run(PRIORITY_HIGH,'include/delivery.php',$rr['cmd'],$rr['item'],$rr['contact']);
-                               if($interval) {
+                               if ($interval) {
                                        time_sleep_until(microtime(true) + (float) $interval);
                                }
                        }
@@ -111,10 +112,10 @@ function queue_run(&$argv, &$argc){
                // queue_predeliver hooks may have changed the queue db details,
                // so check again if this entry still needs processing
 
-               if($queue_id)
+               if ($queue_id) {
                        $qi = q("SELECT * FROM `queue` WHERE `id` = %d LIMIT 1",
                                intval($queue_id));
-               elseif (get_config("system", "worker")) {
+               elseif (get_config("system", "worker")) {
                        logger('Call queue for id '.$q_item['id']);
                        proc_run(PRIORITY_LOW, "include/queue.php", $q_item['id']);
                        continue;
@@ -122,8 +123,9 @@ function queue_run(&$argv, &$argc){
                        $qi = q("SELECT * FROM `queue` WHERE `id` = %d AND `last` < UTC_TIMESTAMP() - INTERVAL 15 MINUTE ",
                                intval($q_item['id']));
 
-               if(! count($qi))
+               if (!dbm::is_result($qi)) {
                        continue;
+               }
 
 
                $c = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1",
@@ -182,36 +184,37 @@ function queue_run(&$argv, &$argc){
                                logger('queue: dfrndelivery: item '.$q_item['id'].' for '.$contact['name'].' <'.$contact['url'].'>');
                                $deliver_status = dfrn::deliver($owner,$contact,$data);
 
-                               if($deliver_status == (-1)) {
+                               if ($deliver_status < 0) {
                                        update_queue_time($q_item['id']);
                                        Cache::set($cachekey_deadguy.$contact['notify'], true, CACHE_QUARTER_HOUR);
-                               } else
+                               } else {
                                        remove_queue_item($q_item['id']);
-
+                               }
                                break;
                        case NETWORK_OSTATUS:
-                               if($contact['notify']) {
+                               if ($contact['notify']) {
                                        logger('queue: slapdelivery: item '.$q_item['id'].' for '.$contact['name'].' <'.$contact['url'].'>');
                                        $deliver_status = slapper($owner,$contact['notify'],$data);
 
-                                       if($deliver_status == (-1)) {
+                                       if ($deliver_status == (-1)) {
                                                update_queue_time($q_item['id']);
                                                Cache::set($cachekey_deadguy.$contact['notify'], true, CACHE_QUARTER_HOUR);
-                                       } else
+                                       } else {
                                                remove_queue_item($q_item['id']);
+                                       }
                                }
                                break;
                        case NETWORK_DIASPORA:
-                               if($contact['notify']) {
+                               if ($contact['notify']) {
                                        logger('queue: diaspora_delivery: item '.$q_item['id'].' for '.$contact['name'].' <'.$contact['url'].'>');
                                        $deliver_status = Diaspora::transmit($owner,$contact,$data,$public,true);
 
-                                       if($deliver_status == (-1)) {
+                                       if ($deliver_status == (-1)) {
                                                update_queue_time($q_item['id']);
                                                Cache::set($cachekey_deadguy.$contact['notify'], true, CACHE_QUARTER_HOUR);
-                                       } else
+                                       } else {
                                                remove_queue_item($q_item['id']);
-
+                                       }
                                }
                                break;
 
@@ -219,15 +222,15 @@ function queue_run(&$argv, &$argc){
                                $params = array('owner' => $owner, 'contact' => $contact, 'queue' => $q_item, 'result' => false);
                                call_hooks('queue_deliver', $a, $params);
 
-                               if($params['result'])
+                               if ($params['result']) {
                                        remove_queue_item($q_item['id']);
-                               else
+                               } else {
                                        update_queue_time($q_item['id']);
-
+                               }
                                break;
 
                }
-               logger('Deliver status '.$deliver_status.' for item '.$q_item['id'].' to '.$contact['name'].' <'.$contact['url'].'>');
+               logger('Deliver status '.(int)$deliver_status.' for item '.$q_item['id'].' to '.$contact['name'].' <'.$contact['url'].'>');
        }
 
        return;
index e084b25da3ed9dafac9345d6ee8e9c643da51f8d..6f204947579bfafd263019709422f62e1ef40add 100644 (file)
@@ -228,9 +228,10 @@ function nodeinfo_cron() {
 
         logger("local_posts: ".$local_posts, LOGGER_DEBUG);
 
-       $posts = qu("SELECT COUNT(*) AS `local_comments` FROM `item`
-                       INNER JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
-                       WHERE `contact`.`self` and `item`.`id` != `item`.`parent` AND `item`.`network` IN ('%s', '%s', '%s')",
+       $posts = qu("SELECT COUNT(*) FROM `contact`
+                       INNER JOIN `item` ON `item`.`contact-id` = `contact`.`id` AND `item`.`uid` = `contact`.`uid` AND
+                               `item`.`id` != `item`.`parent` AND `item`.`network` IN ('%s', '%s', '%s')
+                       WHERE `contact`.`self`",
                        dbesc(NETWORK_OSTATUS), dbesc(NETWORK_DIASPORA), dbesc(NETWORK_DFRN));
 
        if (!is_array($posts))