diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/items.php | 5 | ||||
-rw-r--r-- | include/notifier.php | 27 | ||||
-rw-r--r-- | include/salmon.php | 4 |
3 files changed, 31 insertions, 5 deletions
diff --git a/include/items.php b/include/items.php index 584236f78..b5e901c91 100644 --- a/include/items.php +++ b/include/items.php @@ -710,7 +710,10 @@ function dfrn_deliver($owner,$contact,$atom) { $xml = post_url($contact['notify'],$postvars); - logger('dfrn_deliver: ' . "SENDING: " . print_r($postvars,true) . "\n" . "RECEIVING: " . $xml); + logger('dfrn_deliver: ' . "SENDING: " . print_r($postvars,true) . "\n" . "RECEIVING: " . $xml, LOGGER_DATA); + + if(! strlen($xml)) + return(-1); $res = simplexml_load_string($xml); diff --git a/include/notifier.php b/include/notifier.php index f22917e4f..bbc4f0047 100644 --- a/include/notifier.php +++ b/include/notifier.php @@ -255,10 +255,24 @@ case 'dfrn': logger('notifier: dfrndelivery: ' . $contact['name']); $deliver_status = dfrn_deliver($owner,$contact,$atom); + + if($deliver_status == (-1)) { + // queue message for redelivery + + } + break; default: if($followup && $contact['notify']) { - slapper($owner,$contact['notify'],$slap); + logger('notifier: slapdelivery: ' . $contact['name']); + $deliver_status = slapper($owner,$contact['notify'],$slap); + + if($deliver_status == (-1)) { + // queue message for redelivery + + } + + } else { @@ -269,7 +283,13 @@ logger('notifier: slapdelivery: ' . $contact['name']); foreach($slaps as $slappy) { if($contact['notify']) { - slapper($owner,$contact['notify'],$slappy); + $deliver_status = slapper($owner,$contact['notify'],$slappy); + if($deliver_status == (-1)) { + // queue message for redelivery + // if not already in queue + // else if deliver_status ok and queued, remove from queue + + } } } } @@ -277,6 +297,7 @@ break; } + if(($cmd === 'mail') && ($deliver_status == 0)) { $r = q("UPDATE `mail` SET `delivered` = 1 WHERE `id` = %d LIMIT 1", intval($item_id) @@ -292,7 +313,7 @@ logger('notifier: urldelivery: ' . $url); foreach($slaps as $slappy) { if($url) { - slapper($owner,$url,$slappy); + $deliver_status = slapper($owner,$url,$slappy); } } } diff --git a/include/salmon.php b/include/salmon.php index a12b7391e..85bda1c8f 100644 --- a/include/salmon.php +++ b/include/salmon.php @@ -205,6 +205,8 @@ EOT; } logger('slapper returned ' . $return_code); - return; + if(! $return_code) + return(-1); + return ((substr($return_code,0,1) === '2') ? 0 : 1); } |