From 8213f5b2627a6b63db9f84b572918bd7e3254dff Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Fri, 6 Apr 2001 14:14:16 +0000 Subject: A lot of small changes (search-n-replace) make a big commit: - fixed update bug in book.module - provide a log message when both adding and updating book pages - all configurable variables are now accessed through "variable_get()": - rewrote watchdog and submission throttle and removed watchdog.inc - improved robustness of sections.inc - imporved story.module - updated ./database/database.sql --- includes/common.inc | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'includes/common.inc') diff --git a/includes/common.inc b/includes/common.inc index 3dece2c39..81127c22c 100644 --- a/includes/common.inc +++ b/includes/common.inc @@ -9,12 +9,30 @@ function conf_init() { return $file; } +function watchdog($type, $message) { + global $user, $watchdog, $PHP_SELF; + $link = ($mod) ? $mod : substr(strrchr($PHP_SELF, "/"), 1, strrchr($PHP_SELF, "/") - 4); + db_query("INSERT INTO watchdog (user, type, link, message, location, hostname, timestamp) VALUES ('$user->id', '". check_input($type) ."', '". check_input($link) ."', '". check_input($message) ."', '". check_input(getenv("REQUEST_URI")) ."', '". check_input(getenv("REMOTE_ADDR")) ."', '". time() ."')"); +} + +function throttle($type, $rate) { + if (!(user_access($user, "watchdog") || user_access($user, "comment") || user_access($user, "node"))) { + if ($throttle = db_fetch_object(db_query("SELECT * FROM watchdog WHERE type = '$type' AND hostname = '". getenv("REMOTE_ADDR") ."' AND ". time() ." - timestamp < $rate"))) { + watchdog("warning", "throttle: '". getenv("REMOTE_ADDR") ."' exceeded submission rate - $throttle->type"); + header("Location: error.php?op=throttle"); + exit(); + } + else { + watchdog($type, "throttle control"); + } + } +} + $conf = conf_init(); include_once "includes/$conf.conf"; include_once "includes/database.inc"; include_once "includes/variable.inc"; -include_once "includes/watchdog.inc"; include_once "includes/function.inc"; include_once "includes/comment.inc"; include_once "includes/module.inc"; -- cgit v1.2.3