diff options
author | Friendika <info@friendika.com> | 2011-09-27 19:27:47 -0700 |
---|---|---|
committer | Friendika <info@friendika.com> | 2011-09-27 19:27:47 -0700 |
commit | 4f9c072d661939680bd26b366b3c248d94a3b8da (patch) | |
tree | 96560ab35365f0a5db968827496693859c6a2a82 | |
parent | 75af366122fa472c28a4105553646c53ec0a16e7 (diff) | |
download | volse-hubzilla-4f9c072d661939680bd26b366b3c248d94a3b8da.tar.gz volse-hubzilla-4f9c072d661939680bd26b366b3c248d94a3b8da.tar.bz2 volse-hubzilla-4f9c072d661939680bd26b366b3c248d94a3b8da.zip |
requeue deliveries on 503 errors which have 'retry-after' headers
-rw-r--r-- | boot.php | 2 | ||||
-rw-r--r-- | include/diaspora.php | 3 | ||||
-rw-r--r-- | include/items.php | 3 | ||||
-rw-r--r-- | include/salmon.php | 3 |
4 files changed, 9 insertions, 2 deletions
@@ -8,7 +8,7 @@ require_once("include/pgettext.php"); require_once('include/nav.php'); define ( 'FRIENDIKA_PLATFORM', 'Free Friendika'); -define ( 'FRIENDIKA_VERSION', '2.3.1116' ); +define ( 'FRIENDIKA_VERSION', '2.3.1117' ); define ( 'DFRN_PROTOCOL_VERSION', '2.21' ); define ( 'DB_UPDATE_VERSION', 1092 ); diff --git a/include/diaspora.php b/include/diaspora.php index 5b51314ac..1ae8ca800 100644 --- a/include/diaspora.php +++ b/include/diaspora.php @@ -1267,7 +1267,7 @@ function diaspora_transmit($owner,$contact,$slap,$public_batch) { $return_code = $a->get_curl_code(); logger('diaspora_transmit: ' . $logid . ' returns: ' . $return_code); - if(! $return_code) { + if((! $return_code) || (($curl_stat == 503) && (stristr($a->get_curl_headers(),'retry-after')))) { logger('diaspora_transmit: queue message'); // queue message for redelivery q("INSERT INTO `queue` ( `cid`, `created`, `last`, `content`,`batch`) @@ -1280,5 +1280,6 @@ function diaspora_transmit($owner,$contact,$slap,$public_batch) { ); } + return(($return_code) ? $return_code : (-1)); } diff --git a/include/items.php b/include/items.php index da5a18cad..a1baf7471 100644 --- a/include/items.php +++ b/include/items.php @@ -1042,6 +1042,9 @@ function dfrn_deliver($owner,$contact,$atom, $dissolve = false) { if((! $curl_stat) || (! strlen($xml))) return(-1); // timed out + if(($curl_stat == 503) && (stristr($a->get_curl_headers(),'retry-after'))) + return(-1); + if(strpos($xml,'<?xml') === false) { logger('dfrn_deliver: phase 2: no valid XML returned'); logger('dfrn_deliver: phase 2: returned XML: ' . $xml, LOGGER_DATA); diff --git a/include/salmon.php b/include/salmon.php index 9153f8994..3d525f51a 100644 --- a/include/salmon.php +++ b/include/salmon.php @@ -187,6 +187,9 @@ EOT; logger('slapper returned ' . $return_code); if(! $return_code) return(-1); + if(($return_code == 503) && (stristr($a->get_curl_headers(),'retry-after'))) + return(-1); + return ((($return_code >= 200) && ($return_code < 300)) ? 0 : 1); } |