aboutsummaryrefslogtreecommitdiffstats
path: root/sysconfig/network-scripts/network-functions
diff options
context:
space:
mode:
Diffstat (limited to 'sysconfig/network-scripts/network-functions')
-rw-r--r--sysconfig/network-scripts/network-functions50
1 files changed, 39 insertions, 11 deletions
diff --git a/sysconfig/network-scripts/network-functions b/sysconfig/network-scripts/network-functions
index fc61c2b9..dae790ad 100644
--- a/sysconfig/network-scripts/network-functions
+++ b/sysconfig/network-scripts/network-functions
@@ -31,7 +31,7 @@ get_config_by_device ()
get_config_by_hwaddr ()
{
- LANG=C grep -il "^[[:space:]]*HWADDR=${1}\([[:space:]#]\|$\)" /etc/sysconfig/network-scripts/ifcfg-* \
+ LANG=C grep -il "^[[:space:]]*HWADDR=\"\?${1}\"\?\([[:space:]#]\|$\)" /etc/sysconfig/network-scripts/ifcfg-* \
| LC_ALL=C sed -e "$__sed_discard_ignored_files"
}
@@ -56,6 +56,31 @@ get_device_by_hwaddr ()
LANG=C ip -o link | awk -F ': ' -vIGNORECASE=1 '!/link\/ieee802\.11/ && /'"$1"'/ { print $2 }'
}
+get_uuid_by_config ()
+{
+ dbus-send --system --print-reply --dest=com.redhat.ifcfgrh1 /com/redhat/ifcfgrh1 com.redhat.ifcfgrh1.GetIfcfgDetails string:"/etc/sysconfig/network-scripts/$1" 2>/dev/null | awk -F '"' '/string / { print $2 }'
+}
+
+generate_lease_file_name () {
+ local ver=$1
+ LEASEFILE="/var/lib/dhclient/dhclient$ver-${DEVICE}.leases"
+ if [ -f $LEASEFILE ]; then
+ return
+ fi
+ LEASEFILE="/var/lib/dhclient/dhclient$ver-${UUID}-${DEVICE}.lease"
+}
+
+generate_config_file_name () {
+ local ver=$1
+ if [ -s /etc/dhcp/dhclient$ver-${DEVICE}.conf ]; then
+ DHCLIENTCONF="-cf /etc/dhcp/dhclient$ver-${DEVICE}.conf";
+ elif [ -s /etc/dhclient$ver-${DEVICE}.conf ]; then
+ DHCLIENTCONF="-cf /etc/dhclient$ver-${DEVICE}.conf";
+ else
+ DHCLIENTCONF='';
+ fi
+}
+
need_config ()
{
local nconfig
@@ -147,7 +172,10 @@ source_config ()
else
ISALIAS=no
fi
- ! is_false $NM_CONTROLLED && is_nm_running && USE_NM=true
+ ! is_false $NM_CONTROLLED && is_nm_running && _use_nm=true
+ if [ -z "$UUID" -a "$_use_nm" = "true" ]; then
+ UUID=$(get_uuid_by_config $CONFIG)
+ fi
}
ethtool_set()
@@ -178,6 +206,7 @@ expand_config ()
prefix[$i]=$(eval echo '$'PREFIX$idx)
netmask[$i]=$(eval echo '$'NETMASK$idx)
broadcast[$i]=$(eval echo '$'BROADCAST$idx)
+ arpcheck[$i]=$(eval echo '$'ARPCHECK$idx)
if [ "${prefix[$i]}x" != "x" ]; then
val=$(/bin/ipcalc --netmask "${ipaddr[$i]}/${prefix[$i]}")
@@ -198,6 +227,12 @@ expand_config ()
val=$(/bin/ipcalc --broadcast ${ipaddr[$i]} ${netmask[$i]})
broadcast[$i]=${val##BROADCAST=}
fi
+
+ if [ "${arpcheck[$i]}x" != "x" ]; then
+ arpcheck[$i]=${arpcheck[$i]##ARPCHECK=}
+ arpcheck[$i]=${arpcheck[$i],,*}
+ fi
+
i=$((i+1))
done
@@ -329,19 +364,12 @@ set_hostname ()
check_device_down ()
{
- if echo $1 | grep -q ':' ; then
- if LC_ALL=C ifconfig -a 2>/dev/null | grep -q $1 ; then
- return 1
- else
- return 0
- fi
- else
- if LC_ALL=C ip -o link 2>/dev/null | grep -q "$1[:@].*,UP" ; then
+ [ ! -d /sys/class/net/$1 ] && return 0
+ if LC_ALL=C ip -o link show dev $1 2>/dev/null | grep -q ",UP" ; then
return 1
else
return 0
fi
- fi
}
check_link_down ()