From 473e582d1f3e5067c1aecee9c9f2f579864db3ef Mon Sep 17 00:00:00 2001 From: Thomas Willingham Date: Sun, 31 Aug 2014 16:58:17 +0100 Subject: 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. --- include/dir_fns.php | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'include/dir_fns.php') 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( -- cgit v1.2.3