aboutsummaryrefslogtreecommitdiffstats
path: root/include/deliver.php
diff options
context:
space:
mode:
Diffstat (limited to 'include/deliver.php')
-rw-r--r--include/deliver.php28
1 files changed, 28 insertions, 0 deletions
diff --git a/include/deliver.php b/include/deliver.php
index 47d8562df..0fb7a4aeb 100644
--- a/include/deliver.php
+++ b/include/deliver.php
@@ -20,6 +20,32 @@ function deliver_run($argv, $argc) {
dbesc($argv[$x])
);
if($r) {
+
+ /**
+ * Check to see if we have any recent communications with this hub (in the last month).
+ * If not, reduce the outq_priority.
+ */
+
+ $h = parse_url($r[0]['outq_posturl']);
+ if($h) {
+ $base = $h['scheme'] . '://' . $h['host'] . (($h['port']) ? ':' . $h['port'] : '');
+ if($base !== z_root()) {
+ $y = q("select site_update from site where site_url = '%s' ",
+ dbesc($base)
+ );
+ if($y && $y[0]['site_update'] < datetime_convert('UTC','UTC','now - 1 month')) {
+ q("update outq set outq_priority = %d where outq_hash = '%s'",
+ intval($r[0]['outq_priority'] + 10),
+ dbesc($r[0]['outq_hash'])
+ );
+ logger('immediate delivery deferred for site ' . $base);
+ continue;
+ }
+ }
+ }
+
+ // "post" queue driver - used for diaspora and friendica-over-diaspora communications.
+
if($r[0]['outq_driver'] === 'post') {
$result = z_post_url($r[0]['outq_posturl'],$r[0]['outq_msg']);
if($result['success'] && $result['return_code'] < 300) {
@@ -74,9 +100,11 @@ function deliver_run($argv, $argc) {
logger('deliver: dest: ' . $r[0]['outq_posturl'], LOGGER_DEBUG);
$result = zot_zot($r[0]['outq_posturl'],$r[0]['outq_notify']);
if($result['success']) {
+ logger('deliver: remote zot delivery succeeded to ' . $r[0]['outq_posturl']);
zot_process_response($r[0]['outq_posturl'],$result, $r[0]);
}
else {
+ logger('deliver: remote zot delivery failed to ' . $r[0]['outq_posturl']);
$y = q("update outq set outq_updated = '%s' where outq_hash = '%s'",
dbesc(datetime_convert()),
dbesc($argv[$x])