summaryrefslogtreecommitdiffstats
path: root/apis
diff options
context:
space:
mode:
authorSimon Rettberg2015-05-21 17:16:23 +0200
committerSimon Rettberg2015-05-21 17:16:23 +0200
commitd7e270db5936913daba202a5e1e2c1e9ea7db9ee (patch)
treea4beeb9580784be1ebcc5000f59801ababdbc8ac /apis
parentAnother fix for AD SSL support (diff)
downloadslx-admin-d7e270db5936913daba202a5e1e2c1e9ea7db9ee.tar.gz
slx-admin-d7e270db5936913daba202a5e1e2c1e9ea7db9ee.tar.xz
slx-admin-d7e270db5936913daba202a5e1e2c1e9ea7db9ee.zip
Support statictics slxlog messages (Starting with '.'), those go to a special table
Diffstat (limited to 'apis')
-rw-r--r--apis/clientlog.inc.php26
-rw-r--r--apis/update.inc.php16
2 files changed, 36 insertions, 6 deletions
diff --git a/apis/clientlog.inc.php b/apis/clientlog.inc.php
index bc235903..43f31917 100644
--- a/apis/clientlog.inc.php
+++ b/apis/clientlog.inc.php
@@ -13,11 +13,25 @@ if (isset($_POST['longdesc'])) $longdesc = $_POST['longdesc'];
$row = Database::queryFirst('SELECT Count(*) AS cnt FROM clientlog WHERE clientip = :client AND dateline + 3600 > UNIX_TIMESTAMP()', array(':client' => $ip));
if ($row !== false && $row['cnt'] > 150) exit(0);
-Database::exec('INSERT INTO clientlog (dateline, logtypeid, clientip, description, extra) VALUES (UNIX_TIMESTAMP(), :type, :client, :description, :longdesc)', array(
- ':type' => $type,
- ':client' => $ip,
- ':description' => $description,
- ':longdesc' => $longdesc,
-));
+
+if ($type{0} === '.' && preg_match('#^\[([^\]]+)\]\s*(.*)$#', $description, $out)) {
+ // Special case '.'-type:
+ Database::exec('INSERT INTO statistic (dateline, typeid, clientip, username, data) VALUES (UNIX_TIMESTAMP(), :type, :client, :username, :data)', array(
+ 'type' => $type,
+ 'client' => $ip,
+ 'username' => $out[1],
+ 'data' => $out[2],
+ ));
+
+} else {
+
+ Database::exec('INSERT INTO clientlog (dateline, logtypeid, clientip, description, extra) VALUES (UNIX_TIMESTAMP(), :type, :client, :description, :longdesc)', array(
+ 'type' => $type,
+ 'client' => $ip,
+ 'description' => $description,
+ 'longdesc' => $longdesc,
+ ));
+}
+
echo "OK.\n";
diff --git a/apis/update.inc.php b/apis/update.inc.php
index ac680aef..4cf03b0e 100644
--- a/apis/update.inc.php
+++ b/apis/update.inc.php
@@ -223,3 +223,19 @@ function update_8()
Database::exec("ALTER TABLE `configtgz` ADD `status` ENUM( 'OK', 'OUTDATED', 'MISSING' ) NOT NULL DEFAULT 'MISSING'");
return true;
}
+
+function update_9()
+{
+ Database::exec("CREATE TABLE IF NOT EXISTS `statistic` (
+ `logid` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `dateline` int(10) unsigned NOT NULL,
+ `typeid` varchar(30) NOT NULL,
+ `clientip` varchar(40) NOT NULL,
+ `username` varchar(30) NOT NULL,
+ `data` varchar(255) NOT NULL,
+ PRIMARY KEY (`logid`),
+ KEY `dateline` (`dateline`),
+ KEY `logtypeid` (`typeid`,`dateline`),
+ KEY `clientip` (`clientip`,`dateline`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8");
+} \ No newline at end of file