Signed-off-by: Kairui Song <kasong(a)redhat.com>
---
kdump-logger.sh | 54 +++++++++++++++++++++++--------------------------
1 file changed, 25 insertions(+), 29 deletions(-)
diff --git a/kdump-logger.sh b/kdump-logger.sh
index 41b93ab8..98c4eea3 100755
--- a/kdump-logger.sh
+++ b/kdump-logger.sh
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
#
# This comes from the dracut-logger.sh
#
@@ -84,7 +84,7 @@ check_loglvl()
# @retval 0 on success.
#
dlog_init() {
- local ret=0; local errmsg
+ ret=0
if [ -s /proc/vmcore ];then
if ! get_kdump_loglvl; then
@@ -136,11 +136,11 @@ dlog_init() {
fi
fi
- local lvl; local maxloglvl_l=0
- for lvl in $kdump_stdloglvl $kdump_sysloglvl $kdump_kmsgloglvl; do
- [ $lvl -gt $maxloglvl_l ] && maxloglvl_l=$lvl
+ kdump_maxloglvl=0
+ for _dlog_lvl in $kdump_stdloglvl $kdump_sysloglvl $kdump_kmsgloglvl; do
+ [ $_dlog_lvl -gt $kdump_maxloglvl ] && kdump_maxloglvl=$_dlog_lvl
done
- readonly kdump_maxloglvl=$maxloglvl_l
+ readonly kdump_maxloglvl
export kdump_maxloglvl
if [ $kdump_stdloglvl -lt 4 ] && [ $kdump_kmsgloglvl -lt 4 ] && [
$kdump_sysloglvl -lt 4 ]; then
@@ -172,7 +172,7 @@ dlog_init() {
## @brief Converts numeric level to logger priority defined by POSIX.2.
#
-# @param lvl Numeric logging level in range from 1 to 4.
+# @param $1: Numeric logging level in range from 1 to 4.
# @retval 1 if @a lvl is out of range.
# @retval 0 if @a lvl is correct.
# @result Echoes logger priority.
@@ -188,7 +188,7 @@ _lvl2syspri() {
## @brief Converts logger numeric level to syslog log level
#
-# @param lvl Numeric logging level in range from 1 to 4.
+# @param $1: Numeric logging level in range from 1 to 4.
# @retval 1 if @a lvl is out of range.
# @retval 0 if @a lvl is correct.
# @result Echoes kernel console numeric log level
@@ -208,27 +208,25 @@ _lvl2syspri() {
#
# @see /usr/include/sys/syslog.h
_dlvl2syslvl() {
- local lvl
-
case "$1" in
- 1) lvl=3;;
- 2) lvl=4;;
- 3) lvl=6;;
- 4) lvl=7;;
+ 1) set -- 3;;
+ 2) set -- 4;;
+ 3) set -- 6;;
+ 4) set -- 7;;
*) return 1;;
esac
# The number is constructed by multiplying the facility by 8 and then
# adding the level.
# About The Syslog Protocol, please refer to the RFC5424 for more details.
- echo $((24 + lvl))
+ echo $((24 + $1))
}
## @brief Prints to stderr, to syslog and/or /dev/kmsg given message with
# given level (priority).
#
-# @param lvl Numeric logging level.
-# @param msg Message.
+# @param $1: Numeric logging level.
+# @param $2: Message.
# @retval 0 It's always returned, even if logging failed.
#
# @note This function is not supposed to be called manually. Please use
@@ -250,27 +248,24 @@ _dlvl2syslvl() {
# - @c INFO to @c info
# - @c DEBUG to @c debug
_do_dlog() {
- local lvl="$1"; shift
- local msg="$*"
+ [ "$1" -le $kdump_stdloglvl ] && printf -- 'kdump: %s\n'
"$2" >&2
- [ "$lvl" -le $kdump_stdloglvl ] && printf -- 'kdump: %s\n'
"$msg" >&2
-
- if [ "$lvl" -le $kdump_sysloglvl ]; then
+ if [ "$1" -le $kdump_sysloglvl ]; then
if [ "$_dlogfd" ]; then
- printf -- "<%s>%s\n" "$(($(_dlvl2syslvl
"$lvl") & 7))" "$msg" >&$_dlogfd
+ printf -- "<%s>%s\n" "$(($(_dlvl2syslvl "$1")
& 7))" "$2" 1>&$_dlogfd
else
- logger -t "kdump[$$]" -p "$(_lvl2syspri
"$lvl")" -- "$msg"
+ logger -t "kdump[$$]" -p "$(_lvl2syspri "$1")"
-- "$2"
fi
fi
- [ "$lvl" -le $kdump_kmsgloglvl ] && \
- echo "<$(_dlvl2syslvl "$lvl")>kdump[$$] $msg"
>/dev/kmsg
+ [ "$1" -le $kdump_kmsgloglvl ] && \
+ echo "<$(_dlvl2syslvl "$1")>kdump[$$] $2"
>/dev/kmsg
}
## @brief Internal helper function for _do_dlog()
#
-# @param lvl Numeric logging level.
-# @param msg Message.
+# @param $1: Numeric logging level.
+# @param $2 [...]: Message.
# @retval 0 It's always returned, even if logging failed.
#
# @note This function is not supposed to be called manually. Please use
@@ -288,7 +283,8 @@ dlog() {
[ "$1" -le "$kdump_maxloglvl" ] || return 0
if [ $# -gt 1 ]; then
- _do_dlog "$@"
+ _dlog_lvl=$1; shift
+ _do_dlog "$_dlog_lvl" "$*"
else
while read -r line || [ -n "$line" ]; do
_do_dlog "$1" "$line"
--
2.31.1