From 981925197b006e5e14c69918bbee40bd983c7e20 Mon Sep 17 00:00:00 2001 From: Lukas Nykryn Date: Tue, 27 Aug 2024 11:28:04 +0200 Subject: [PATCH] netconsole: source sysconfig/network only if it exists Although the comment said "check if network is up", the code only sourced the configuration file, but did not fail if it did not exist and happily continued. Also on current versions of Fedora, the sysconfig/network does not exist by default, so you see a warning message when you start the service. So let's just check if the file exists and only source it if it does (for backward compatibility). --- usr/libexec/netconsole | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/usr/libexec/netconsole b/usr/libexec/netconsole index 3f2872dd2..103a3852f 100755 --- a/usr/libexec/netconsole +++ b/usr/libexec/netconsole @@ -1,5 +1,5 @@ #!/bin/bash -# +# # netconsole This loads the netconsole module with the configured parameters. # # chkconfig: - 50 50 @@ -22,8 +22,7 @@ PATH=/sbin:/usr/sbin:$PATH RETVAL=0 SERVER_ADDRESS_RESOLUTION= -# Check that networking is up. -. /etc/sysconfig/network +[ -f /etc/sysconfig/network ] && . /etc/sysconfig/network # Source function library. . /etc/rc.d/init.d/functions @@ -50,7 +49,7 @@ print_address_info () local route via target route=$(LANG=C ip -o route get to $host/32) - + [ -z "$DEV" ] && DEV=$(echo $route | sed "s|.* dev \([^ ]*\).*|\1|") echo "DEV=$DEV" echo "LOCALADDR=$(echo $route | sed "s|.* src \([^ ]*\).*|\1|")" @@ -63,9 +62,9 @@ print_address_info () if [ -z "$SYSLOGMACADDR" ]; then arp=$(LANG=C /sbin/arping -f -c 1 -I $DEV $target 2>/dev/null | awk '/ reply from .*[.*]/ { print gensub(".* reply from .* \\[(.*)\\].*","\\1","G"); exit }') [ -n "$arp" ] && echo "SYSLOGMACADDR=$arp" - fi -} - + fi +} + start () { [ -f /etc/sysconfig/netconsole ] || exit 6 @@ -101,7 +100,7 @@ start () exit 6 fi eval $(print_address_info $SYSLOGADDR) - + if [ -z "$SYSLOGMACADDR" ]; then echo $"netconsole: can't resolve MAC address of $SYSLOGADDR" 1>&2 exit 1