aboutsummaryrefslogtreecommitdiffstats
path: root/sysconfig
diff options
context:
space:
mode:
authorMiloslav Trmac <mitr@volny.cz>2006-07-26 01:30:02 +0000
committerMiloslav Trmac <mitr@volny.cz>2006-07-26 01:30:02 +0000
commit0d27618adb7bd5fa4300a00921d69c1c6aae68fa (patch)
treeb80f344c1a8d94bec07eddada0ff4b5642e82f1e /sysconfig
parentbafb0b214d8e0b9dbaebf5bfa6111fbb35a0039a (diff)
downloadinitscripts-0d27618adb7bd5fa4300a00921d69c1c6aae68fa.tar
initscripts-0d27618adb7bd5fa4300a00921d69c1c6aae68fa.tar.gz
initscripts-0d27618adb7bd5fa4300a00921d69c1c6aae68fa.tar.bz2
initscripts-0d27618adb7bd5fa4300a00921d69c1c6aae68fa.tar.xz
initscripts-0d27618adb7bd5fa4300a00921d69c1c6aae68fa.zip
Use the alias value to lookup an install line.
Use string comparisons instead of regexp matches in the awk conditions, speeding up the awk program several times.
Diffstat (limited to 'sysconfig')
-rw-r--r--sysconfig/network-scripts/network-functions17
1 files changed, 12 insertions, 5 deletions
diff --git a/sysconfig/network-scripts/network-functions b/sysconfig/network-scripts/network-functions
index 36d207a7..310d9861 100644
--- a/sysconfig/network-scripts/network-functions
+++ b/sysconfig/network-scripts/network-functions
@@ -200,11 +200,18 @@ is_available ()
LC_ALL= LANG= ip -o link | grep -q $1
[ "$?" = "1" ] || return 0
- alias=`modprobe -c | awk "/^(alias|install)[[:space:]]+$1[[:space:]]/ { print \\$3 }"`
- if [ -z "$alias" -o "$alias" = "off" -o "$alias" = "/bin/true" \
- -o "$alias" = ":" ]; then
- return 2
- fi
+ modprobe -c | awk \
+'BEGIN { alias = ""; }
+$1 == "alias" && $2 == "'"$1"'" { alias = $3; }
+$1 == "install" { install[$2] = $3; }
+END {
+ cmd = install[alias];
+ if (alias == "" || alias == "off" || cmd == "/bin/true" || cmd == ":")
+ exit 1;
+ exit 0;
+}'
+ [ $? -eq 0 ] || return 2
+
modprobe $1 > /dev/null 2>&1 || {
return 1
}