aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xboot.php2
-rw-r--r--include/deliver.php18
-rw-r--r--install/schema_mysql.sql4
-rw-r--r--install/schema_postgres.sql2
-rw-r--r--install/update.php11
5 files changed, 34 insertions, 3 deletions
diff --git a/boot.php b/boot.php
index 4ed5d34c4..5f8dd20fd 100755
--- a/boot.php
+++ b/boot.php
@@ -49,7 +49,7 @@ define ( 'RED_PLATFORM', 'redmatrix' );
define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'R');
define ( 'ZOT_REVISION', 1 );
-define ( 'DB_UPDATE_VERSION', 1138 );
+define ( 'DB_UPDATE_VERSION', 1139 );
/**
* Constant with a HTML line break.
diff --git a/include/deliver.php b/include/deliver.php
index 47d8562df..459c0f94b 100644
--- a/include/deliver.php
+++ b/include/deliver.php
@@ -20,6 +20,24 @@ function deliver_run($argv, $argc) {
dbesc($argv[$x])
);
if($r) {
+ $h = parse_url($r[0]['outq_posturl']);
+ if($h) {
+ $base = $h['scheme'] . '://' . $h['host'] . (($h['port']) ? ':' . $h['port'] : '');
+ if($base !== z_root()) {
+ $x = q("select site_update from site where site_url = '%s' ",
+ dbesc($base)
+ );
+ if($x && $x[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;
+ }
+ }
+ }
+
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) {
diff --git a/install/schema_mysql.sql b/install/schema_mysql.sql
index da78d9c61..4e481f5c0 100644
--- a/install/schema_mysql.sql
+++ b/install/schema_mysql.sql
@@ -940,6 +940,7 @@ CREATE TABLE IF NOT EXISTS `outq` (
`outq_updated` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`outq_notify` mediumtext NOT NULL,
`outq_msg` mediumtext NOT NULL,
+ `outq_priority` smallint NOT NULL DEFAULT '0',
PRIMARY KEY (`outq_hash`),
KEY `outq_account` (`outq_account`),
KEY `outq_channel` (`outq_channel`),
@@ -947,7 +948,8 @@ CREATE TABLE IF NOT EXISTS `outq` (
KEY `outq_created` (`outq_created`),
KEY `outq_updated` (`outq_updated`),
KEY `outq_async` (`outq_async`),
- KEY `outq_delivered` (`outq_delivered`)
+ KEY `outq_delivered` (`outq_delivered`),
+ KEY `outq_priority` (`outq_priority`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- --------------------------------------------------------
diff --git a/install/schema_postgres.sql b/install/schema_postgres.sql
index 44b8f16a4..20285a352 100644
--- a/install/schema_postgres.sql
+++ b/install/schema_postgres.sql
@@ -725,6 +725,7 @@ CREATE TABLE "outq" (
"outq_updated" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
"outq_notify" text NOT NULL,
"outq_msg" text NOT NULL,
+ "outq_priority" smallint NOT NULL DEFAULT '0',
PRIMARY KEY ("outq_hash")
);
create index "outq_account" on outq ("outq_account");
@@ -734,6 +735,7 @@ create index "outq_created" on outq ("outq_created");
create index "outq_updated" on outq ("outq_updated");
create index "outq_async" on outq ("outq_async");
create index "outq_delivered" on outq ("outq_delivered");
+create index "outq_priority" on outq ("outq_priority");
CREATE TABLE "pconfig" (
"id" serial NOT NULL,
diff --git a/install/update.php b/install/update.php
index 70ffb1ebf..75805513d 100644
--- a/install/update.php
+++ b/install/update.php
@@ -1,6 +1,6 @@
<?php
-define( 'UPDATE_VERSION' , 1138 );
+define( 'UPDATE_VERSION' , 1139 );
/**
*
@@ -1580,3 +1580,12 @@ function update_r1137() {
return UPDATE_SUCCESS;
return UPDATE_FAILED;
}
+
+
+function update_r1138() {
+ $r1 = q("alter table outq add outq_priority smallint not null default '0' ");
+ $r2 = q("create index outq_priority on outq ( outq_priority ) ");
+ if($r1 && $r2)
+ return UPDATE_SUCCESS;
+ return UPDATE_FAILED;
+}