summaryrefslogtreecommitdiffstats
path: root/core/rootfs
diff options
context:
space:
mode:
authorSimon Rettberg2021-07-09 09:43:52 +0200
committerSimon Rettberg2021-07-09 09:43:52 +0200
commit5733a5d0eb3c7f73ca52acdb466484c83c9b5b02 (patch)
tree97a0925b2bb1cae84f1da6e850420475c12c41f0 /core/rootfs
parentAdd installer mode for stage4 (diff)
downloadmltk-5733a5d0eb3c7f73ca52acdb466484c83c9b5b02.tar.gz
mltk-5733a5d0eb3c7f73ca52acdb466484c83c9b5b02.tar.xz
mltk-5733a5d0eb3c7f73ca52acdb466484c83c9b5b02.zip
[slxlog] Add module
Diffstat (limited to 'core/rootfs')
-rwxr-xr-xcore/rootfs/rootfs-stage32/data/opt/openslx/bin/slxlog104
-rw-r--r--core/rootfs/rootfs-stage32/module.conf1
2 files changed, 1 insertions, 104 deletions
diff --git a/core/rootfs/rootfs-stage32/data/opt/openslx/bin/slxlog b/core/rootfs/rootfs-stage32/data/opt/openslx/bin/slxlog
deleted file mode 100755
index f58934bc..00000000
--- a/core/rootfs/rootfs-stage32/data/opt/openslx/bin/slxlog
+++ /dev/null
@@ -1,104 +0,0 @@
-#!/bin/ash
-
-##################
-# Remote logging #
-##################
-#
-# Usage: slxlog [-e | --echo] "logtype" "Human readable string" ["file name which's contents should be sent too"]
-# -e or --echo will echo message to stdout too
-#
-
-export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/openslx/sbin:/opt/openslx/bin"
-
-. /opt/openslx/config
-[ -z "$SLX_REMOTE_LOG" ] && exit 3
-
-USER=$(whoami)
-LOGCHECK="/tmp/remote_log_check-$USER"
-NOW=$(date +%s)
-DELFILE=
-SYNC=
-
-while [ $# -gt 0 ]; do
- case "$1" in
- -e|--echo)
- echo "$@"
- ;;
- -d|--delete)
- DELFILE=yes
- ;;
- -s|--sync)
- SYNC=yes
- ;;
- *)
- break
- ;;
- esac
- shift
-done
-
-[ $# -eq 0 ] && exit 0
-
-TYPE="$1"
-
-# Simple spamcheck. Not very tamper-proof, but if you'd want to spam the server
-# you could do it anyways. This is to protect from accidental loops calling this.
-if [ -r "$LOGCHECK" ]; then
- # Allow max 150 messages in total
- LINES=$( < "$LOGCHECK" wc -l)
- [ "$LINES" -gt "150" ] && exit 1
- # Allow max 5 of same type messages in 30 seconds
- LINES=$(grep -c "$TYPE" "$LOGCHECK")
- if [ "$LINES" -ge "5" ]; then
- LAST=$(grep "$TYPE" "$LOGCHECK" | tail -n 5 | head -n 1 | awk '{print $1}')
- if [ -n "$LAST" ]; then
- DIFF="$(( NOW - LAST ))"
- [ "$DIFF" -lt "30" ] && exit 2
- fi
- fi
-fi
-echo "$NOW $TYPE" >> "$LOGCHECK"
-chmod 0600 "$LOGCHECK" 2>/dev/null
-
-if [ $# -lt 2 ]; then
- MSG="Missing text for $*"
-else
- MSG="$2"
-fi
-MSG="[$USER] $MSG"
-
-if [ $# -gt 2 ]; then
- EXTRA="$3"
-fi
-
-if [ -n "$SLX_DEBUG" ]; then
- CURLLOG="/tmp/slxlog.$USER"
-else
- CURLLOG="/dev/null"
-fi
-
-UUID=
-if [ -s /etc/system-uuid ]; then
- UUID=$(cat /etc/system-uuid)
-fi
-
-submitlog () {
- if [ -n "$EXTRA" ] && [ -r "$EXTRA" ] && [ -s "$EXTRA" ] && [ "$(stat -c %s "$EXTRA")" -lt "10000" ]; then # valid file attachment
- curl --data-urlencode "uuid=$UUID" --data-urlencode "type=$TYPE" --data-urlencode "description=$MSG" --data-urlencode "longdesc@$EXTRA" "$SLX_REMOTE_LOG" >> "$CURLLOG" 2>&1
- elif [ -z "$EXTRA" ]; then # no attachment
- curl --data-urlencode "uuid=$UUID" --data-urlencode "type=$TYPE" --data-urlencode "description=$MSG" "$SLX_REMOTE_LOG" >> "$CURLLOG" 2>&1
- elif [ -s "$EXTRA" ]; then # attachment file to big (more than 10k)
- curl --data-urlencode "uuid=$UUID" --data-urlencode "type=$TYPE" --data-urlencode "description=$MSG" --data-urlencode "longdesc=Attachment too large: $EXTRA" "$SLX_REMOTE_LOG" >> "$CURLLOG" 2>&1
- else # empty attachment file (or missing)
- curl --data-urlencode "uuid=$UUID" --data-urlencode "type=$TYPE" --data-urlencode "description=$MSG" --data-urlencode "longdesc=Attachment missing/empty: $EXTRA" "$SLX_REMOTE_LOG" >> "$CURLLOG" 2>&1
- fi
- [ -n "$DELFILE" ] && [ -n "$EXTRA" ] && rm -f -- "$EXTRA"
-}
-
-if [ -z "$SYNC" ]; then
- submitlog &
- exit 0
-fi
-
-submitlog
-
diff --git a/core/rootfs/rootfs-stage32/module.conf b/core/rootfs/rootfs-stage32/module.conf
index 5fb5a08a..f875a1eb 100644
--- a/core/rootfs/rootfs-stage32/module.conf
+++ b/core/rootfs/rootfs-stage32/module.conf
@@ -2,6 +2,7 @@
REQUIRED_MODULES="
kernel
vmware-version-check
+ slxlog
"
REQUIRED_BINARIES="
bash