aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorFriendika <info@friendika.com>2011-09-27 19:27:47 -0700
committerFriendika <info@friendika.com>2011-09-27 19:27:47 -0700
commit4f9c072d661939680bd26b366b3c248d94a3b8da (patch)
tree96560ab35365f0a5db968827496693859c6a2a82 /include
parent75af366122fa472c28a4105553646c53ec0a16e7 (diff)
downloadvolse-hubzilla-4f9c072d661939680bd26b366b3c248d94a3b8da.tar.gz
volse-hubzilla-4f9c072d661939680bd26b366b3c248d94a3b8da.tar.bz2
volse-hubzilla-4f9c072d661939680bd26b366b3c248d94a3b8da.zip
requeue deliveries on 503 errors which have 'retry-after' headers
Diffstat (limited to 'include')
-rw-r--r--include/diaspora.php3
-rw-r--r--include/items.php3
-rw-r--r--include/salmon.php3
3 files changed, 8 insertions, 1 deletions
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);
}