aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--boot.php4
-rw-r--r--include/items.php18
-rw-r--r--mod/dfrn_notify.php43
3 files changed, 41 insertions, 24 deletions
diff --git a/boot.php b/boot.php
index 6d1ea165c..a17f078bf 100644
--- 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));
diff --git a/include/items.php b/include/items.php
index c5857f7fd..27cb01f25 100644
--- a/include/items.php
+++ b/include/items.php
@@ -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('&','&',$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);
diff --git a/mod/dfrn_notify.php b/mod/dfrn_notify.php
index f0c4f0c64..d7166f6ae 100644
--- a/mod/dfrn_notify.php
+++ b/mod/dfrn_notify.php
@@ -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);