summaryrefslogtreecommitdiffstats
path: root/modules-available/syslog
diff options
context:
space:
mode:
authorSimon Rettberg2016-05-17 18:14:13 +0200
committerSimon Rettberg2016-05-17 18:14:13 +0200
commit8e729913a8f6258762f4e8049caebc9dbb42a71e (patch)
tree48b1d27787847c012994248e32f5a79695221218 /modules-available/syslog
parentGet baseconfig ready for modularization (diff)
downloadslx-admin-8e729913a8f6258762f4e8049caebc9dbb42a71e.tar.gz
slx-admin-8e729913a8f6258762f4e8049caebc9dbb42a71e.tar.xz
slx-admin-8e729913a8f6258762f4e8049caebc9dbb42a71e.zip
Modularized baseconfig fetching (api)
Diffstat (limited to 'modules-available/syslog')
-rw-r--r--modules-available/syslog/api.inc.php40
-rw-r--r--modules-available/syslog/baseconfig/getconfig.inc.php4
2 files changed, 44 insertions, 0 deletions
diff --git a/modules-available/syslog/api.inc.php b/modules-available/syslog/api.inc.php
new file mode 100644
index 00000000..cebe5ef1
--- /dev/null
+++ b/modules-available/syslog/api.inc.php
@@ -0,0 +1,40 @@
+<?php
+
+if (empty($_POST['type'])) die('Missing options.');
+$type = mb_strtolower($_POST['type']);
+
+$ip = $_SERVER['REMOTE_ADDR'];
+if (substr($ip, 0, 7) === '::ffff:') $ip = substr($ip, 7);
+
+// TODO: Handle UUID in appropriate modules (optional)
+$uuid = Request::post('uuid', '', 'string');
+if (strlen($uuid) !== 36) {
+ // Probably invalid UUID. What to do? Set empty or ignore?
+}
+
+/*
+ * Normal logging
+ */
+
+if (!isset($_POST['description'])) die('Missing options..');
+
+$description = $_POST['description'];
+$longdesc = '';
+if (isset($_POST['longdesc'])) $longdesc = $_POST['longdesc'];
+
+if ($type{0} !== '.' && $type{0} !== '~') {
+
+ // Spam from IP
+ $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,
+ ));
+
+}
+
+echo "OK.\n";
diff --git a/modules-available/syslog/baseconfig/getconfig.inc.php b/modules-available/syslog/baseconfig/getconfig.inc.php
new file mode 100644
index 00000000..9706eea1
--- /dev/null
+++ b/modules-available/syslog/baseconfig/getconfig.inc.php
@@ -0,0 +1,4 @@
+<?php
+
+// Remote log URL
+$configVars["SLX_REMOTE_LOG"] = 'http://' . $_SERVER['SERVER_ADDR'] . $_SERVER['SCRIPT_NAME'] . '?do=clientlog';