aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Willingham <beardyunixer@beardyunixer.com>2014-08-31 16:58:17 +0100
committerThomas Willingham <beardyunixer@beardyunixer.com>2014-08-31 16:58:17 +0100
commit473e582d1f3e5067c1aecee9c9f2f579864db3ef (patch)
treeb142818108d74b36ea88ef86affd720ec61d049a
parent45c35d97b8ce627cb90efa320b7daca4097aef75 (diff)
downloadvolse-hubzilla-473e582d1f3e5067c1aecee9c9f2f579864db3ef.tar.gz
volse-hubzilla-473e582d1f3e5067c1aecee9c9f2f579864db3ef.tar.bz2
volse-hubzilla-473e582d1f3e5067c1aecee9c9f2f579864db3ef.zip
Add check_upstream_directory() to check that your directory is still
a directory, and if it isn't, let find_upstream_directory() find you a new one.
-rw-r--r--include/dir_fns.php20
-rw-r--r--include/poller.php3
2 files changed, 23 insertions, 0 deletions
diff --git a/include/dir_fns.php b/include/dir_fns.php
index 815b6a197..5fad6567e 100644
--- a/include/dir_fns.php
+++ b/include/dir_fns.php
@@ -30,6 +30,26 @@ function find_upstream_directory($dirmode) {
return array('url' => $preferred);
}
+function check_upstream_directory() {
+ /**
+ * Directories may come and go over time. We will need to check that our
+ * directory server is still valid occasionally, and reset to something that
+ * is if our directory has gone offline for any reason
+ */
+ $directory = get_config('system','directory_server');
+ if ($directory) {
+ $r = q("select * from site where site_url = '%s' and (site_flags & %d) ",
+ dbesc($directory),
+ intval(DIRECTORY_MODE_PRIMARY|DIRECTORY_MODE_SECONDARY|DIRECTORY_MODE_STANDALONE)
+ );
+ }
+ // If we've got something, it's still a directory. If we haven't, we need to reset and let find_upstream_directory() fix it
+ if (! $r) {
+ set_config('system','directory_server','');
+ }
+ return;
+}
+
function dir_sort_links() {
$o = replace_macros(get_markup_template('dir_sort_links.tpl'), array(
diff --git a/include/poller.php b/include/poller.php
index 546a2d6d1..b9d728e8d 100644
--- a/include/poller.php
+++ b/include/poller.php
@@ -111,6 +111,9 @@ function poller_run($argv, $argc){
if(($d2 != $d1) && ($h1 == $h2)) {
+ require_once('include/dir_fns.php');
+ check_upstream_directory();
+
call_hooks('cron_daily',datetime_convert());