[Rspamd] Check if filterconf table was changed and return Last-Modified accordingly
This commit is contained in:
		| @@ -6,6 +6,8 @@ then any of these will trigger the rule. If a rule is triggered then no more rul | ||||
| */ | ||||
| header('Content-Type: text/plain'); | ||||
| require_once "vars.inc.php"; | ||||
| // Getting headers sent by the client. | ||||
| $headers = apache_request_headers(); | ||||
|  | ||||
| ini_set('error_reporting', 0); | ||||
|  | ||||
| @@ -25,6 +27,22 @@ catch (PDOException $e) { | ||||
|   exit; | ||||
| } | ||||
|  | ||||
| // Check if db changed and return header | ||||
| $stmt = $pdo->prepare("SELECT UNIX_TIMESTAMP(UPDATE_TIME) AS `db_update_time` FROM information_schema.tables | ||||
|   WHERE `TABLE_NAME` = 'filterconf' | ||||
|     AND TABLE_SCHEMA = :dbname;"); | ||||
| $stmt->execute(array( | ||||
|   ':dbname' => $database_name | ||||
| )); | ||||
| $db_update_time = $stmt->fetch(PDO::FETCH_ASSOC)['db_update_time']; | ||||
|  | ||||
| if (isset($headers['If-Modified-Since']) && (strtotime($headers['If-Modified-Since']) == $db_update_time)) { | ||||
|   header('Last-Modified: '.gmdate('D, d M Y H:i:s', $db_update_time).' GMT', true, 304); | ||||
|   exit; | ||||
| } else { | ||||
|   header('Last-Modified: '.gmdate('D, d M Y H:i:s', $db_update_time).' GMT', true, 200); | ||||
| } | ||||
|  | ||||
| function parse_email($email) { | ||||
|   if (!filter_var($email, FILTER_VALIDATE_EMAIL)) return false; | ||||
|   $a = strrpos($email, '@'); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user