From 9f38f0eeba5d63c36e910cde44b9bc59c2b5aba3 Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Tue, 24 Jun 2003 04:13:19 +0000 Subject: more tweaks - encapsulate grabing the hw addr into its own function - normalize case of all hwaddrs - if we are passed a device with no config, see if there's a config for that hwaddr --- sysconfig/network-scripts/network-functions | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) (limited to 'sysconfig/network-scripts/network-functions') diff --git a/sysconfig/network-scripts/network-functions b/sysconfig/network-scripts/network-functions index eb2d0efc..be94e045 100644 --- a/sysconfig/network-scripts/network-functions +++ b/sysconfig/network-scripts/network-functions @@ -7,10 +7,27 @@ PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin" export PATH +get_hwaddr () +{ + LC_ALL= LANG= ip -o link show ${1} 2>/dev/null | \ + sed 's/.*link\/ether \([[:alnum:]:]*\).*/\1/' | \ + awk '{ print toupper($0) }' +} + need_config () { CONFIG="ifcfg-${1}" - [ -f "${CONFIG}" ] && return || CONFIG="${1}" + [ -f "${CONFIG}" ] && return + CONFIG="${1}" + [ -f "${CONFIG}" ] && return + local addr=`get_hwaddr ${1}` + if [ -n "$addr" ]; then + local nconfig=`fgrep -il "HWADDR=$addr" /etc/sysconfig/network-scripts/ifcfg-*` + if [ -n "$nconfig" ] ; then + CONFIG=$nconfig + [ -f "${CONFIG}" ] && return + fi + fi } source_config () @@ -61,6 +78,12 @@ source_config () else ISALIAS=no fi + if [ -n "$HWADDR" ]; then + HWADDR=`echo $HWADDR | awk '{ print toupper($0) }'` + fi + if [ -n "$MACADDR" ]; then + MACADDR=`echo $MACADDR | awk '{ print toupper($0) }'` + fi } -- cgit v1.2.1