From 8e00ae9b58cceccaf10b7bf8600131b8d6e671a4 Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Mon, 16 Jul 2007 14:05:29 +0100 Subject: check update daemon timestamp --- functions.php | 38 +++++++++++++++++++++++++++++++++++++- 1 file changed, 37 insertions(+), 1 deletion(-) (limited to 'functions.php') diff --git a/functions.php b/functions.php index 1aa6f32b4..6376a282c 100644 --- a/functions.php +++ b/functions.php @@ -1509,8 +1509,9 @@ function make_stampfile($filename) { $fp = fopen($filename, "w"); - if ($fp) { + if (flock($fp, LOCK_EX | LOCK_NB)) { fwrite($fp, time() . "\n"); + flock($fp, LOCK_UN); fclose($fp); return true; } else { @@ -1518,6 +1519,21 @@ } } + function read_stampfile($filename) { + + error_reporting(0); + $fp = fopen($filename, "r"); + error_reporting (DEFAULT_ERROR_LEVEL); + + if (flock($fp, LOCK_EX)) { + $stamp = fgets($fp); + flock($fp, LOCK_UN); + fclose($fp); + return $stamp; + } else { + return false; + } + } function sql_random_function() { if (DB_TYPE == "mysql") { @@ -2314,7 +2330,27 @@ if (ENABLE_UPDATE_DAEMON) { print ""; + + if ($_SESSION["daemon_stamp_check"] + 0 < time()) { + + $stamp = (int)read_stampfile("update_daemon.stamp"); + + if ($stamp) { + if ($stamp + 86400*3 < time()) { + print ""; + } else { + print ""; + } + + $stamp_fmt = date("Y.m.d, G:i", $stamp); + + print ""; + } + + $_SESSION["daemon_stamp_check"] = time(); + } } + if (CHECK_FOR_NEW_VERSION && $_SESSION["access_level"] >= 10) { if ($_SESSION["last_version_check"] + 600 < time()) { -- cgit v1.2.3