]> git.mxchange.org Git - friendica.git/commitdiff
ensuring all non-deliveries get in the queue
authorFriendika <info@friendika.com>
Thu, 25 Nov 2010 23:03:59 +0000 (15:03 -0800)
committerFriendika <info@friendika.com>
Thu, 25 Nov 2010 23:03:59 +0000 (15:03 -0800)
boot.php
include/items.php
mod/dfrn_notify.php

index 6d1ea165cb40791ee41a3e88b5b2354705cae950..a17f078bf07ad8e84411545986b75f67745bcac9 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -416,6 +416,8 @@ function fetch_url($url,$binary = false, &$redirects = 0) {
        if($binary)
                curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
 
+       $a->set_curl_code(0);
+
        $s = curl_exec($ch);
 
        $http_code = intval(curl_getinfo($ch, CURLINFO_HTTP_CODE));
@@ -474,6 +476,8 @@ function post_url($url,$params, $headers = null, &$redirects = 0) {
                        curl_setopt($ch, CURLOPT_PROXYUSERPWD, $prxusr);
        }
 
+       $a->set_curl_code(0);
+
        $s = curl_exec($ch);
 
        $http_code = intval(curl_getinfo($ch, CURLINFO_HTTP_CODE));
index c5857f7fd3cb1e571620f434bc81794e559ab454..27cb01f2503a403c18ed3f55f61432b338d5bde6 100644 (file)
@@ -536,7 +536,6 @@ function item_store($arr) {
        $arr['title']         = ((x($arr,'title'))         ? notags(trim($arr['title']))         : '');
        $arr['location']      = ((x($arr,'location'))      ? notags(trim($arr['location']))      : '');
        $arr['coord']         = ((x($arr,'coord'))         ? notags(trim($arr['coord']))         : '');
-       $arr['body']          = ((x($arr,'body'))          ? escape_tags(trim($arr['body']))     : '');
        $arr['last-child']    = ((x($arr,'last-child'))    ? intval($arr['last-child'])          : 0 );
        $arr['visible']       = ((x($arr,'visible') !== false) ? intval($arr['visible'])         : 1 );
        $arr['deleted']       = 0;
@@ -550,6 +549,13 @@ function item_store($arr) {
        $arr['allow_gid']     = ((x($arr,'allow_gid'))     ? trim($arr['allow_gid'])             : '');
        $arr['deny_cid']      = ((x($arr,'deny_cid'))      ? trim($arr['deny_cid'])              : '');
        $arr['deny_gid']      = ((x($arr,'deny_gid'))      ? trim($arr['deny_gid'])              : '');
+       $arr['body']          = ((x($arr,'body'))          ? escape_tags(trim($arr['body']))     : '');
+
+       // The content body has been through a lot of filtering and transport escaping by now. 
+       // We don't want to skip any filters, however a side effect of all this filtering 
+       // is that ampersands will have been double encoded. 
+
+       $arr['body']          = str_replace('&amp;amp;','&amp;',$arr['body']);
 
 
 
@@ -640,6 +646,7 @@ function get_item_contact($item,$contacts) {
 
 function dfrn_deliver($owner,$contact,$atom) {
 
+       $a = get_app();
 
        if((! strlen($contact['dfrn-id'])) && (! $contact['duplex']) && (! ($owner['page-flags'] == PAGE_COMMUNITY)))
                return 3;
@@ -657,6 +664,10 @@ function dfrn_deliver($owner,$contact,$atom) {
 
        $xml = fetch_url($url);
 
+       $curl_stat = $a->get_curl_code();
+       if(! $curl_stat)
+               return(-1); // timed out
+
        logger('dfrn_deliver: ' . $xml);
 
        if(! $xml)
@@ -711,8 +722,9 @@ function dfrn_deliver($owner,$contact,$atom) {
 
        logger('dfrn_deliver: ' . "SENDING: " . print_r($postvars,true) . "\n" . "RECEIVING: " . $xml, LOGGER_DATA);
 
-       if(! strlen($xml))
-               return(-1);
+       $curl_stat = $a->get_curl_code();
+       if((! $curl_stat) || (! strlen($xml)))
+               return(-1); // timed out
 
        $res = simplexml_load_string($xml);
 
index f0c4f0c643265d8507ef8587b04ff2ba84564fd5..d7166f6aec7fc5fe455b19d2001315884b8abde2 100644 (file)
@@ -149,6 +149,8 @@ function dfrn_notify_post(&$a) {
                xml_status(0);
                // NOTREACHED
        }       
+       
+       logger('dfrn_notify: feed item count = ' . $feed->get_item_quantity());
 
        foreach($feed->get_items() as $item) {
 
@@ -223,6 +225,7 @@ function dfrn_notify_post(&$a) {
 
                if($is_reply) {
                        if($feed->get_item_quantity() == 1) {
+                               logger('dfrn_notify: received remote comment');
                                // remote reply to our post. Import and then notify everybody else.
                                $datarray = get_atom_elements($feed,$item);
                                $datarray['type'] = 'remote-comment';
@@ -254,29 +257,27 @@ function dfrn_notify_post(&$a) {
                                                        intval($posted_id)
                                        );
 
-                                       if($datarray['type'] == 'remote-comment') {
-                                               $php_path = ((strlen($a->config['php_path'])) ? $a->config['php_path'] : 'php');
-
-                                               proc_close(proc_open("\"$php_path\" \"include/notifier.php\" \"comment-import\" \"$posted_id\" &", 
-                                                       array(),$foo));
-
-                                               if(($importer['notify-flags'] & NOTIFY_COMMENT) && (! $importer['self'])) {
-                                                       require_once('bbcode.php');
-                                                       $from = stripslashes($datarray['author-name']);
-                                                       $tpl = load_view_file('view/cmnt_received_eml.tpl');                    
-                                                       $email_tpl = replace_macros($tpl, array(
-                                                               '$sitename' => $a->config['sitename'],
-                                                               '$siteurl' =>  $a->get_baseurl(),
-                                                               '$username' => $importer['username'],
-                                                               '$email' => $importer['email'],
-                                                               '$display' => $a->get_baseurl() . '/display/' . $posted_id, 
-                                                               '$from' => $from,
+                                       $php_path = ((strlen($a->config['php_path'])) ? $a->config['php_path'] : 'php');
+
+                                       proc_close(proc_open("\"$php_path\" \"include/notifier.php\" \"comment-import\" \"$posted_id\" &", 
+                                               array(),$foo));
+
+                                       if(($importer['notify-flags'] & NOTIFY_COMMENT) && (! $importer['self'])) {
+                                               require_once('bbcode.php');
+                                               $from = stripslashes($datarray['author-name']);
+                                               $tpl = load_view_file('view/cmnt_received_eml.tpl');                    
+                                               $email_tpl = replace_macros($tpl, array(
+                                                       '$sitename' => $a->config['sitename'],
+                                                       '$siteurl' =>  $a->get_baseurl(),
+                                                       '$username' => $importer['username'],
+                                                       '$email' => $importer['email'],
+                                                       '$display' => $a->get_baseurl() . '/display/' . $posted_id, 
+                                                       '$from' => $from,
                                                        '$body' => strip_tags(bbcode(stripslashes($datarray['body'])))
-                                                       ));
+                                               ));
        
-                                                       $res = mail($importer['email'], $from . t(" commented on your item at ") . $a->config['sitename'],
-                                                               $email_tpl,t("From: Administrator@") . $a->get_hostname() );
-                                               }
+                                               $res = mail($importer['email'], $from . t(" commented on your item at ") . $a->config['sitename'],
+                                                       $email_tpl,t("From: Administrator@") . $a->get_hostname() );
                                        }
                                }
                                xml_status(0);