aboutsummaryrefslogtreecommitdiffstats
path: root/sysconfig
diff options
context:
space:
mode:
authorColin Guthrie <colin@mageia.org>2012-10-28 20:16:00 +0000
committerColin Guthrie <colin@mageia.org>2012-10-28 20:16:00 +0000
commit5b2ce4ba3ff6cf5d7df7f5760107ff2f3e7dbe6f (patch)
treeec8a31bfe3ca67db6c5f31e1e34e59708fdfe557 /sysconfig
parent35326f41a29186a00331117c4419a904c6563c7c (diff)
parentbf95e22c4164b82112d043169495a71d1bfa0068 (diff)
downloadinitscripts-5b2ce4ba3ff6cf5d7df7f5760107ff2f3e7dbe6f.tar
initscripts-5b2ce4ba3ff6cf5d7df7f5760107ff2f3e7dbe6f.tar.gz
initscripts-5b2ce4ba3ff6cf5d7df7f5760107ff2f3e7dbe6f.tar.bz2
initscripts-5b2ce4ba3ff6cf5d7df7f5760107ff2f3e7dbe6f.tar.xz
initscripts-5b2ce4ba3ff6cf5d7df7f5760107ff2f3e7dbe6f.zip
Merge tag 'initscripts-9.41-1' into mga-41
Tag as initscripts-9.41-1 Conflicts: .gitignore Makefile inittab po/xgettext_sh.py prefdm rc.d/init.d/functions rc.d/init.d/halt rc.d/init.d/killall rc.d/init.d/netfs rc.d/init.d/network rc.d/init.d/single rc.d/rc rc.d/rc.local rc.d/rc.sysinit service src/console_check.c src/console_init.c sysconfig.txt sysconfig/network-scripts/ifdown sysconfig/network-scripts/ifdown-eth sysconfig/network-scripts/ifup sysconfig/network-scripts/ifup-eth sysconfig/network-scripts/ifup-ippp sysconfig/network-scripts/network-functions systemd/system/fedora-wait-storage.service udev/rules.d/10-console.rules Merge Notes: 1. prefdm: We are keeping the current prefdm script which parses /etc/sysconfig/desktop to find the current preferred dm. We also keep the hunk in sysconfig.txt which relates to the afore mentioned file. Longer term, we should drop this and move to per-dm units. 2. sysconfig/network-scripts/ifup-ippp is still removed at our end... is there a replacement? 3. I used our /sbin/service as it varies quite a lot from fedora. I'd be tempted to drop our custom version in favour of upstream (s/libexec/lib/) 4. ifup/ifdown NM wrappers have been included - previously we just printed a "Device is manged by NM skipping.." message. CONFLICT (modify/delete): udev/rules.d/10-console.rules deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of udev/rules.d/10-console.rules left in tree. Auto-merging systemd/system/fedora-wait-storage.service CONFLICT (content): Merge conflict in systemd/system/fedora-wait-storage.service Auto-merging systemd/fedora-storage-init Auto-merging sysconfig/network-scripts/network-functions CONFLICT (content): Merge conflict in sysconfig/network-scripts/network-functions Removing sysconfig/network-scripts/net.hotplug Auto-merging sysconfig/network-scripts/ifup-sit Auto-merging sysconfig/network-scripts/ifup-post Auto-merging sysconfig/network-scripts/ifup-plusb CONFLICT (modify/delete): sysconfig/network-scripts/ifup-ippp deleted in HEAD and modified in initscripts-9.41-1. Version initscripts-9.41-1 of sysconfig/network-scripts/ifup-ippp left in tree. Auto-merging sysconfig/network-scripts/ifup-eth CONFLICT (content): Merge conflict in sysconfig/network-scripts/ifup-eth Auto-merging sysconfig/network-scripts/ifup CONFLICT (content): Merge conflict in sysconfig/network-scripts/ifup Auto-merging sysconfig/network-scripts/ifdown-sit Auto-merging sysconfig/network-scripts/ifdown-post Auto-merging sysconfig/network-scripts/ifdown-eth CONFLICT (content): Merge conflict in sysconfig/network-scripts/ifdown-eth Auto-merging sysconfig/network-scripts/ifdown CONFLICT (content): Merge conflict in sysconfig/network-scripts/ifdown Auto-merging sysconfig.txt CONFLICT (content): Merge conflict in sysconfig.txt Removing src/testdinit Removing src/testd.c Removing src/securetty.c Removing src/securetty.8 Removing src/getkey.c Removing src/getkey.1 Removing src/fstab-decode.c Removing src/fstab-decode.8 CONFLICT (modify/delete): src/console_init.c deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of src/console_init.c left in tree. CONFLICT (modify/delete): src/console_check.c deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of src/console_check.c left in tree. Auto-merging service CONFLICT (content): Merge conflict in service CONFLICT (modify/delete): rc.d/rc.sysinit deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of rc.d/rc.sysinit left in tree. CONFLICT (modify/delete): rc.d/rc.local deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of rc.d/rc.local left in tree. CONFLICT (modify/delete): rc.d/rc deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of rc.d/rc left in tree. CONFLICT (modify/delete): rc.d/init.d/single deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of rc.d/init.d/single left in tree. Auto-merging rc.d/init.d/network CONFLICT (content): Merge conflict in rc.d/init.d/network CONFLICT (modify/delete): rc.d/init.d/netfs deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of rc.d/init.d/netfs left in tree. Auto-merging rc.d/init.d/netconsole CONFLICT (modify/delete): rc.d/init.d/killall deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of rc.d/init.d/killall left in tree. CONFLICT (modify/delete): rc.d/init.d/halt deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of rc.d/init.d/halt left in tree. Auto-merging rc.d/init.d/functions CONFLICT (content): Merge conflict in rc.d/init.d/functions CONFLICT (modify/delete): prefdm deleted in initscripts-9.41-1 and modified in HEAD. Version HEAD of prefdm left in tree. Auto-merging ppp/ip-up.ipv6to4 CONFLICT (modify/delete): po/xgettext_sh.py deleted in HEAD and modified in initscripts-9.41-1. Version initscripts-9.41-1 of po/xgettext_sh.py left in tree. Removing inittab.upstart Removing inittab.systemd Removing inittab.s390 Auto-merging inittab CONFLICT (content): Merge conflict in inittab Removing init/tty.conf Removing init/start-ttys.conf Removing init/splash-manager.conf Removing init/serial.conf Removing init/rcS.conf Removing init/rcS-sulogin.conf Removing init/rc.conf Removing init/quit-plymouth.conf Removing init/prefdm.conf Removing init/plymouth-shutdown.conf Removing init/control-alt-delete.conf Removing crypttab.5 Removing README-init Removing NetworkManager/dispatcher.d/05-netfs Auto-merging Makefile CONFLICT (content): Merge conflict in Makefile Auto-merging .gitignore CONFLICT (content): Merge conflict in .gitignore Automatic merge failed; fix conflicts and then commit the result.
Diffstat (limited to 'sysconfig')
-rw-r--r--sysconfig/debug3
-rwxr-xr-xsysconfig/network-scripts/ifdown15
-rwxr-xr-xsysconfig/network-scripts/ifdown-eth36
-rwxr-xr-xsysconfig/network-scripts/ifdown-post5
-rwxr-xr-xsysconfig/network-scripts/ifdown-routes2
-rw-r--r--sysconfig/network-scripts/ifdown-sit3
-rwxr-xr-xsysconfig/network-scripts/ifup10
-rwxr-xr-xsysconfig/network-scripts/ifup-aliases130
-rwxr-xr-xsysconfig/network-scripts/ifup-ctc11
-rwxr-xr-xsysconfig/network-scripts/ifup-eth31
-rwxr-xr-xsysconfig/network-scripts/ifup-plip14
-rw-r--r--sysconfig/network-scripts/ifup-plusb10
-rwxr-xr-xsysconfig/network-scripts/ifup-post7
-rw-r--r--sysconfig/network-scripts/ifup-sit8
-rwxr-xr-xsysconfig/network-scripts/net.hotplug60
-rw-r--r--sysconfig/network-scripts/network-functions50
-rw-r--r--sysconfig/readonly-root2
17 files changed, 183 insertions, 214 deletions
diff --git a/sysconfig/debug b/sysconfig/debug
index 3a251fd4..4ae4e7b5 100644
--- a/sysconfig/debug
+++ b/sysconfig/debug
@@ -4,7 +4,8 @@
# 0: silently ignore errors
# 1: print diagnostics on stderr when an error is detected
# 2: call abort when an error is detected
-export MALLOC_CHECK_=1
+# Note: MALLOC_CHECK_ is not thread safe, enable at your own risk.
+# export MALLOC_CHECK_=1
# MALLOC_PERTURB_: initialize cleared memory to the specified value
export MALLOC_PERTURB_=$(($RANDOM % 255 + 1))
diff --git a/sysconfig/network-scripts/ifdown b/sysconfig/network-scripts/ifdown
index 57e56e3f..597802bf 100755
--- a/sysconfig/network-scripts/ifdown
+++ b/sysconfig/network-scripts/ifdown
@@ -41,9 +41,14 @@ then
exit 0
fi
-if [ "$USE_NM" = "true" ]; then
- echo $"$0: interface ${1} is controlled by NetworkManager; skipping." >&2
- exit 0
+if [ "$_use_nm" = "true" ]; then
+ if [ -n "$UUID" -a -z "$DEVICE" ]; then
+ DEVICE=$(nmcli -t --fields uuid,devices con status | awk -F ':' "\$1 == \"$UUID\" { print \$2 }")
+ fi
+ if [ -n "$DEVICE" ] && ! is_nm_device_unmanaged "$DEVICE" ; then
+ nmcli dev disconnect iface "$DEVICE"
+ exit $?
+ fi
fi
if [ -x /sbin/ifdown-pre-local ]; then
@@ -53,6 +58,10 @@ fi
OTHERSCRIPT="/etc/sysconfig/network-scripts/ifdown-${DEVICETYPE}"
if [ ! -x ${OTHERSCRIPT} ]; then
+ OTHERSCRIPT="/etc/sysconfig/network-scripts/ifdown-${TYPE}"
+fi
+
+if [ ! -x ${OTHERSCRIPT} ]; then
OTHERSCRIPT="/etc/sysconfig/network-scripts/ifdown-eth"
fi
diff --git a/sysconfig/network-scripts/ifdown-eth b/sysconfig/network-scripts/ifdown-eth
index 684cef73..56ea2725 100755
--- a/sysconfig/network-scripts/ifdown-eth
+++ b/sysconfig/network-scripts/ifdown-eth
@@ -56,7 +56,7 @@ fi
fi
if is_bonding_device ${DEVICE} ; then
- for device in $(LANG=C egrep -l "^[[:space:]]*MASTER=\"?${DEVICE}\"?" /etc/sysconfig/network-scripts/ifcfg-*) ; do
+ for device in $(LANG=C egrep -l "^[[:space:]]*MASTER=\"?${DEVICE}\"?[[:space:]]*$" /etc/sysconfig/network-scripts/ifcfg-*) ; do
is_ignored_file "$device" && continue
/sbin/ifdown ${device##*/}
done
@@ -88,7 +88,29 @@ if [[ "${DHCPV6C}" = [Yy1]* ]] && [ -f /var/run/dhcp6c_${DEVICE}.pid ]; then
rm -f /var/run/dhcp6c_${DEVICE}.pid;
fi
-# Kill running dhcp client if present
+retcode=0
+[ -n "$(pidof -x dhclient)" ] && {
+ for VER in "" 6 ; do
+ if [ -f "/var/run/dhclient$VER-${DEVICE}.pid" ]; then
+ dhcpid=$(cat /var/run/dhclient$VER-${DEVICE}.pid)
+ generate_lease_file_name $VER
+ if [[ "$DHCPRELEASE" = [yY1]* ]]; then
+ /sbin/dhclient -r -lf ${LEASEFILE} -pf /var/run/dhclient$VER-${DEVICE}.pid ${DEVICE} >/dev/null 2>&1
+ retcode=$?
+ else
+ kill $dhcpid >/dev/null 2>&1
+ retcode=$?
+ reason=STOP$VER interface=${DEVICE} /sbin/dhclient-script
+ fi
+ if [ -f "/var/run/dhclient$VER-${DEVICE}.pid" ]; then
+ rm -f /var/run/dhclient$VER-${DEVICE}.pid
+ kill $dhcpid >/dev/null 2>&1
+ fi
+ fi
+ done
+}
+
+# Kill running dhcp client if present (supports more clients than the above)
dhcp_client_pids() {
CLIENTS='dhcpcd|pump|dhcpxd|dhclient|zcip'
[ -n "${daemon}" -o "$MII_NOT_SUPPORTED" = "yes" ] && CLIENTS="${CLIENTS}|wpa_supplicant"
@@ -100,7 +122,6 @@ if [ -n "${daemon}" -a "$MII_NOT_SUPPORTED" != "yes" ]; then
/sbin/ifplugd -k -W -i ${DEVICE}
fi
-retcode=0
pids=`dhcp_client_pids`
if [ -n "$pids" ]; then
kill $pids
@@ -140,12 +161,12 @@ fi
if [ -n "${BRIDGE}" ] && [ -x /usr/sbin/brctl ]; then
/sbin/ip link set dev ${DEVICE} down
- /usr/sbin/brctl delif ${BRIDGE} ${DEVICE}
+ /usr/sbin/brctl delif -- ${BRIDGE} ${DEVICE}
# Upon removing a device from a bridge,
# it's necessary to make radvd reload its config
[ -r /var/run/radvd/radvd.pid ] && kill -HUP $(cat /var/run/radvd/radvd.pid)
if [ -d /sys/class/net/${BRIDGE}/brif ] && [ $(ls -1 /sys/class/net/${BRIDGE}/brif | wc -l) -eq 0 ]; then
- /usr/sbin/brctl delbr ${BRIDGE}
+ /usr/sbin/brctl delbr -- ${BRIDGE}
fi
fi
@@ -173,11 +194,8 @@ fi
if [ -n "$VLAN" ]; then
# 802.1q VLAN
- if echo ${DEVICE} | LANG=C grep -Ev '(:)' | LANG=C grep -Eq '(eth|bond)[0-9][0-9]*\.[0-9][0-9]?[0-9]?[0-9]?' \
- || echo ${DEVICE} | LANG=C grep -Eq 'vlan[0-9][0-9]?[0-9]?[0-9]?' ; then
- [ -f /proc/net/vlan/${DEVICE} ] && {
+ if [ -f /proc/net/vlan/${DEVICE} ]; then
ip link delete ${DEVICE} type vlan
- }
fi
fi
diff --git a/sysconfig/network-scripts/ifdown-post b/sysconfig/network-scripts/ifdown-post
index 98fe64cc..78fbd8a6 100755
--- a/sysconfig/network-scripts/ifdown-post
+++ b/sysconfig/network-scripts/ifdown-post
@@ -43,6 +43,11 @@ if ! check_default_route ; then
fi
fi
+# Inform firewall
+if [ -x /usr/bin/firewall-cmd -a "${REALDEVICE}" != "lo" ]; then
+ /usr/bin/firewall-cmd --remove --interface="${DEVICE}" > /dev/null 2>&1
+fi
+
# Notify programs that have requested notification
do_netreport
diff --git a/sysconfig/network-scripts/ifdown-routes b/sysconfig/network-scripts/ifdown-routes
index 3c62498a..0109404f 100755
--- a/sysconfig/network-scripts/ifdown-routes
+++ b/sysconfig/network-scripts/ifdown-routes
@@ -2,7 +2,7 @@
#
# Drops static routes which go through device $1
if [ -z "$1" ]; then
- echo $"usage: ifup-routes <net-device> [<nickname>]"
+ echo $"usage: ifdown-routes <net-device> [<nickname>]"
exit 1
fi
diff --git a/sysconfig/network-scripts/ifdown-sit b/sysconfig/network-scripts/ifdown-sit
index 39e9c50f..e4d07345 100644
--- a/sysconfig/network-scripts/ifdown-sit
+++ b/sysconfig/network-scripts/ifdown-sit
@@ -51,5 +51,8 @@ if [ $? != 0 -a $? != 11 ]; then
exit 0
fi
+# Cleanup additional static routes
+/etc/sysconfig/network-scripts/ifdown-routes ${REALDEVICE}
+
# Cleanup and shut down IPv6-in-IPv4 tunnel device
ipv6_del_tunnel_device $DEVICE
diff --git a/sysconfig/network-scripts/ifup b/sysconfig/network-scripts/ifup
index 914309c0..0e69b72a 100755
--- a/sysconfig/network-scripts/ifup
+++ b/sysconfig/network-scripts/ifup
@@ -68,9 +68,9 @@ then
exit 0
fi
-if [ "$USE_NM" = "true" ]; then
- echo $"$0: interface ${1} is controlled by NetworkManager; skipping." >&2
- exit 0
+if [ "$_use_nm" = "true" -a -n "$UUID" ]; then
+ nmcli con up uuid "$UUID"
+ exit $?
fi
# Ethernet 802.1Q VLAN support
@@ -141,6 +141,10 @@ fi
OTHERSCRIPT="/etc/sysconfig/network-scripts/ifup-${DEVICETYPE}"
if [ ! -x ${OTHERSCRIPT} ]; then
+ OTHERSCRIPT="/etc/sysconfig/network-scripts/ifup-${TYPE}"
+fi
+
+if [ ! -x ${OTHERSCRIPT} ]; then
OTHERSCRIPT="/etc/sysconfig/network-scripts/ifup-eth"
fi
diff --git a/sysconfig/network-scripts/ifup-aliases b/sysconfig/network-scripts/ifup-aliases
index fc21c7b6..a647044f 100755
--- a/sysconfig/network-scripts/ifup-aliases
+++ b/sysconfig/network-scripts/ifup-aliases
@@ -74,43 +74,34 @@ parent_device=$device
cd /etc/sysconfig/network-scripts
. ./network-functions
-# Grab the current configuration of any running aliases device info is placed
-# into variables in the form: rdev_$DEVICE_addr, dev_$DEVICE_mb and
-# rdevip_$IPGLOP. A list of all the devices is created in rdev_LIST.
-
-eval $(LC_ALL= LANG= /sbin/ifconfig | LC_ALL=C sed -n '
-# Alias name: store the number in TMP, ignore the following address if the
-# device name does not match. This may leave a hanging ||, so dummy X=x
-# comands are used to ignore a possible previous condition.
-/^[^[:space:]]*:[0-9A-Za-z_]*/ {
- s|^\([^:]*\):\([0-9A-Za-z_]*\).*$|X=x; TMP="\2"; [ "$device" != "\1" ] \|\| |p
- b
-}
-# Non-alias device: always ignore the following address
-/^[^[:space:]]/ {
- s|^.*$|X=x; true \|\| |p
- b
-}
-# Address: Preceded by a device name, which was converted into
-# condition ||
-# So this triggers only for $device.
-# Add a trailing || (which will be swallowed by X=x) to keep the syntax
-# correct.
-/inet addr:[0-9]*\.[0-9]*\.[0-9]*\.[0-9]* *Bcast:[0-9.]* *Mask:[0-9.]*/ {
- s|^.*inet addr:\(\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\)\) *Bcast:\([0-9.]*\) *Mask:\([0-9.]*\).*$|eval "rdev_${TMP}_addr=\1; rdev_${TMP}_mb=\7_\6; rdevip_\2_\3_\4_\5=${TMP}; rdev_LIST=\\"\\$rdev_LIST \\${TMP}\\"; " \|\| |p
- b
-}') X=x
-
-if [ -z "$rdev_LIST" ]; then
- no_devices_are_up=yes
-fi
-
-##for DEVNUM in $rdev_LIST ; do
-##eval "
-##echo \"rdev_${DEVNUM}_addr = \$rdev_${DEVNUM}_addr\"
-##echo \"rdev_${DEVNUM}_mb = \$rdev_${DEVNUM}_mb\" ";
-##done
-##echo ""; echo "-----"; echo ""
+# Grab the current configuration of any running aliases, place device info
+# into variables of the form:
+# rdev_<index>_addr = <ip address>
+# rdev_<index>_pb = <prefix>_<broadcast>
+# rdevip_<ipaddress> = <index>
+# Example:
+# rdev_0_addr=192.168.1.1
+# rdev_0_pb=24_192.16.1.255
+# rdevip_192_168_1_1=0
+#
+# A list of all the devices is created in rdev_LIST.
+
+eval $( ip addr show $device label $device:* | \
+ awk 'BEGIN { COUNT=0;LAST_DEV="" } /inet / {
+# Split IP address into address/prefix
+ split($2,IPADDR,"/");
+# Create A_B_C_D IP address form
+ IP_ADDR=IPADDR[1];
+ gsub(/\./,"_",IP_ADDR);
+# Split device into device:index
+ split($NF,DEV,":");
+# Update last device
+ LAST_DEV=LAST_DEV " " DEV[2];
+ printf("rdev_%s_addr=%s\nrdevip_%s=%s\nrdev_%s_pb=%s_%s\nrdev_LIST=\"%s\"\n",
+ DEV[2],IPADDR[1],IP_ADDR,DEV[2],DEV[2],IPADDR[2],$4,LAST_DEV);
+ } END {
+ if(LAST_DEV == "") print "no_devices_are_up=yes"
+ }' );
#
# Store configuration of the parent device and network
@@ -130,6 +121,7 @@ eval ` (
}
eval ` (
. ./$PARENTCONFIG;
+ echo default_PREFIX=$PREFIX\;;
echo default_NETMASK=$NETMASK\;;
echo default_BROADCAST=$BROADCAST\;;
echo default_GATEWAY=$GATEWAY\;;
@@ -141,6 +133,7 @@ function ini_env ()
{
DEVICE=""
IPADDR=""
+ PREFIX=$default_PREFIX
NETMASK=$default_NETMASK
BROADCAST=$default_BROADCAST
GATEWAY=$default_GATEWAY
@@ -150,9 +143,8 @@ function ini_env ()
function is_default_gateway ()
{
- LC_ALL=C /sbin/route -n \
- | awk '$1 == "0.0.0.0" && $2 == "'"$1"'" { found = 1; }
- END { exit found == 0; }'
+ LC_ALL=C /sbin/ip route ls default scope global \
+ | awk '$3 == "'"$1"'" { found = 1; } END { exit found == 0; }'
}
#
@@ -193,37 +185,17 @@ function new_interface ()
return 1
fi
- if [ -z "$NETMASK" ]; then
- eval $(/bin/ipcalc --netmask ${IPADDR})
+ if [ -z "$NETMASK" -a -z "$PREFIX" ]; then
+ net_log $"error iN $FILE: didn't specify netmask or prefix"
fi
- if [ -z "$BROADCAST" -o "$BROADCAST" = "$default_BROADCAST" ]; then
- eval $(/bin/ipcalc --broadcast ${IPADDR} ${NETMASK})
- nma=$NETMASK; nmb=${nma#*.}; nmc=${nmb#*.};
- NMGLOP="${nma%%.*}_${nmb%%.*}_${nmc%%.*}_${nmc#*.}";
- if [ ${nma%%.*} -eq 0 ]; then ipnm_a=0; else ipnm_a=${ipa%%.*}; fi
- if [ ${nmb%%.*} -eq 0 ]; then ipnm_b=0; else ipnm_b=${ipb%%.*}; fi
- if [ ${nmc%%.*} -eq 0 ]; then ipnm_c=0; else ipnm_c=${ipc%%.*}; fi
- if [ ${nmc#*.} -eq 0 ]; then ipnm_d=0; else ipnm_d=${ipc#*.}; fi
- CACHENAME="${NMGLOP}_${ipnm_a}_${ipnm_b}_${ipnm_c}_${ipnm_d}"
- eval "
- if [ -z \"\$bcastcache_${CACHENAME}\" ]; then
- eval $(/bin/ipcalc --broadcast $IPADDR $NETMASK)
- bcastcache_${CACHENAME}=\$BROADCAST
- else
- BROADCAST=\$bcastcache_${CACHENAME}
- fi
- ";
+ if [ -z "$PREFIX" ]; then
+ eval $(/bin/ipcalc --prefix ${IPADDR} ${NETMASK})
fi
-##echo "";
-##echo "----------------------------"
-##echo "device = $DEVICE"
-##echo "ipaddr = $IPADDR"
-##echo "netmask = $NETMASK"
-##echo "broadcast = $BROADCAST"
-##echo "devnum = $DEVNUM";
-##echo "";
+ if [ -z "$BROADCAST" -o "$BROADCAST" = "$default_BROADCAST" ]; then
+ eval $(/bin/ipcalc --broadcast ${IPADDR}/${PREFIX})
+ fi
if [ "$no_devices_are_up" = "yes" ]; then
setup_this=yes
@@ -233,7 +205,7 @@ function new_interface ()
eval "
rdev_addr=\$rdev_${DEVNUM}_addr;
- rdev_mb=\$rdev_${DEVNUM}_mb;
+ rdev_pb=\$rdev_${DEVNUM}_pb;
rdev_mark=\$rdev_${DEVNUM}_mark;
rdevip=\$rdevip_${IPGLOP};
";
@@ -241,15 +213,14 @@ function new_interface ()
if [ -n "$rdev_addr" ]; then
if [ "$rdev_addr" = "${IPADDR}" ]; then
newmark=keep
- if [ "$rdev_mb" != "${NETMASK}_${BROADCAST}" ]; then
+ if [ "$rdev_pb" != "${PREFIX}_${BROADCAST}" ]; then
setup_this=freshen
else
setup_this=no
fi
else
if [ "$rdev_mark" != "remove" ]; then
-##echo "removing device $parent_device:${DEVNUM} (devnum conflict)"
- /sbin/ifconfig $parent_device:${DEVNUM} down
+ /sbin/ip addr flush dev $parent_device label $parent_device:${DEVNUM}
do_netreport=yes
fi
newmark=remove
@@ -272,8 +243,7 @@ function new_interface ()
fi
if [ "$mark_remove" != "remove" ]; then
eval " rdev_${rdevip}_mark=remove ";
-##echo "removing device $parent_device:$rdevip (ipaddr conflict)"
- /sbin/ifconfig $parent_device:$rdevip down
+ /sbin/ip addr flush dev $parent_device label $parent_device:$rdevip
do_netreport=yes
fi
fi
@@ -282,15 +252,11 @@ function new_interface ()
if [ "$setup_this" = "freshen" ] ; then
# we can do the freshen stuff right now
-##echo "freshening device $DEVICE"
- /sbin/ifconfig $DEVICE netmask $NETMASK broadcast $BROADCAST;
+ /sbin/ip addr change ${IPADDR}/${PREFIX} brd ${BROADCAST}
fi
if [ "$setup_this" = "yes" ] ; then
-
-##echo "setting up device $DEVICE"
-
- /sbin/ifconfig ${DEVICE} ${IPADDR} netmask ${NETMASK} broadcast ${BROADCAST}
+ /sbin/ip addr add ${IPADDR}/${PREFIX} brd ${BROADCAST} dev ${parent_device} label ${DEVICE}
[ "$IPV6INIT" = "yes" ] && /etc/sysconfig/network-scripts/ifup-ipv6 ${DEVICE}
@@ -302,8 +268,7 @@ function new_interface ()
\( -z "${GATEWAYDEV}" -o "${GATEWAYDEV}" = "${DEVICE}" \) ]; then
# set up default gateway, if it isn't already there
if ! is_default_gateway "$GATEWAY"; then
- route add default gw ${GATEWAY} \
- ${METRIC:+metric $METRIC} ${DEVICE}
+ ip route replace default ${METRIC:+metric $METRIC} via ${GATEWAY} dev ${DEVICE}
fi
fi
@@ -365,8 +330,7 @@ done
for DEVNUM in $rdev_LIST ; do
eval " rdev_mark=\$rdev_${DEVNUM}_mark ";
if [ -z "$rdev_mark" ]; then
- ##echo "removing device $parent_device:${DEVNUM} (lingering)"
- /sbin/ifconfig $parent_device:${DEVNUM} down
+ /sbin/ip addr flush dev $parent_device label $parent_device:${DEVNUM}
do_netreport=yes
fi
done
diff --git a/sysconfig/network-scripts/ifup-ctc b/sysconfig/network-scripts/ifup-ctc
index e268d7cc..39d6a09c 100755
--- a/sysconfig/network-scripts/ifup-ctc
+++ b/sysconfig/network-scripts/ifup-ctc
@@ -23,10 +23,11 @@ if [ "$2" = "boot" -a "${ONBOOT}" = "no" ]
then
exit
fi
-[ -n "${MTU}" ] && opts="${opts} mtu ${MTU}"
-
-ifconfig ${DEVICE} ${IPADDR} ${opts} pointopoint ${GATEWAY} netmask ${NETMASK}
+[ -n "${MTU}" ] && ip link set dev ${DEVICE} mtu ${MTU}
+[ -z "$PREFIX" ] && eval $(/bin/ipcalc --prefix ${IPADDR} ${NETMASK})
+ip addr add ${IPADDR} peer ${GATEWAY}/${PREFIX} dev ${DEVICE}
+ip link set up dev ${DEVICE}
# Wait for the device to come up - the chandev'ified ctc driver can take
# quite a while...
timeout=0
@@ -39,13 +40,13 @@ while ! ping -w 30 -c 1 ${GATEWAY} &>/dev/null; do
done
if [ "${NETWORK}" != "" ] ; then
- route add -host ${GATEWAY} metric 1 ${DEVICE}
+ ip route add to ${GATEWAY} metric 1 dev ${DEVICE}
fi
if [ "${GATEWAY}" != "" ]; then
if [ "${GATEWAYDEV}" = "" -o "${GATEWAYDEV}" = "${DEVICE}" ]; then
# set up default gateway
- route add default gw ${GATEWAY} ${METRIC:+metric $METRIC}
+ ip route replace default ${METRIC:+metric $METRIC} via ${GATEWAY}
fi
fi
diff --git a/sysconfig/network-scripts/ifup-eth b/sysconfig/network-scripts/ifup-eth
index 4db7ba59..e51fdf53 100755
--- a/sysconfig/network-scripts/ifup-eth
+++ b/sysconfig/network-scripts/ifup-eth
@@ -66,10 +66,10 @@ if [ "${TYPE}" = "Bridge" ]; then
exit 1
fi
if [ ! -d /sys/class/net/${DEVICE}/bridge ]; then
- /usr/sbin/brctl addbr ${DEVICE} || exit 1
+ /usr/sbin/brctl addbr -- ${DEVICE} || exit 1
fi
- [ -n "${DELAY}" ] && /usr/sbin/brctl setfd ${DEVICE} ${DELAY}
- [ -n "${STP}" ] && /usr/sbin/brctl stp ${DEVICE} ${STP}
+ [ -n "${DELAY}" ] && /usr/sbin/brctl setfd -- ${DEVICE} ${DELAY}
+ [ -n "${STP}" ] && /usr/sbin/brctl stp -- ${DEVICE} ${STP}
# add the bits to setup driver parameters here
for arg in $BRIDGING_OPTS ; do
key=${arg%%=*};
@@ -212,14 +212,14 @@ if [ "$ISALIAS" = no ] && is_bonding_device ${DEVICE} ; then
if ! grep -q ${value#+} /sys/class/net/${DEVICE}/bonding/$key; then
echo "$value" > /sys/class/net/${DEVICE}/bonding/$key
fi
- else
+ elif [ "${key}" != "primary" ]; then
echo $value > /sys/class/net/${DEVICE}/bonding/$key
fi
done
/sbin/ip link set dev ${DEVICE} up
[ -n "${LINKDELAY}" ] && /bin/sleep ${LINKDELAY}
- for device in $(LANG=C egrep -l "^[[:space:]]*MASTER=\"?${DEVICE}\"?" /etc/sysconfig/network-scripts/ifcfg-*) ; do
+ for device in $(LANG=C egrep -l "^[[:space:]]*MASTER=\"?${DEVICE}\"?[[:space:]]*$" /etc/sysconfig/network-scripts/ifcfg-*) ; do
is_ignored_file "$device" && continue
/sbin/ifup ${device##*/}
done
@@ -237,13 +237,13 @@ fi
# If the device is part of a bridge, add the device to the bridge
if [ -n "${BRIDGE}" ] && [ -x /usr/sbin/brctl ]; then
if [ ! -d /sys/class/net/${BRIDGE}/bridge ]; then
- /usr/sbin/brctl addbr ${BRIDGE} 2>/dev/null
+ /usr/sbin/brctl addbr -- ${BRIDGE} 2>/dev/null
fi
/sbin/ip addr flush dev ${DEVICE} 2>/dev/null
/sbin/ip link set dev ${DEVICE} up
ethtool_set
[ -n "${LINKDELAY}" ] && /bin/sleep ${LINKDELAY}
- /usr/sbin/brctl addif ${BRIDGE} ${DEVICE}
+ /usr/sbin/brctl addif -- ${BRIDGE} ${DEVICE}
# add the bits to setup driver parameters here
for arg in $BRIDGING_OPTS ; do
key=${arg%%=*};
@@ -342,7 +342,9 @@ case $(basename $DHCP_CLIENT) in
else
ONESHOT="-1"
fi
- DHCP_ARGS="$DHCP_ARGS $ONESHOT -q -lf /var/lib/dhcp/dhclient-${DEVICE}.leases -pf /var/run/dhclient-${DEVICE}.pid -cf /etc/dhclient-${DEVICE}.conf $DEVICE"
+ generate_config_file_name
+ generate_lease_file_name
+ DHCP_ARGS="$DHCP_ARGS $ONESHOT -q ${DHCLIENTCONF} -lf ${LEASEFILE} -pf /var/run/dhclient-${DEVICE}.pid $DEVICE"
if [ -n "$DHCP_HOSTNAME" ]; then
if [ ! -e /etc/dhclient-${DEVICE}.conf ] || ! grep -q "[^# ]*send *host-name" /etc/dhclient-${DEVICE}.conf; then
echo "send host-name \"${DHCP_HOSTNAME}\"; $BLURB" >> /etc/dhclient-${DEVICE}.conf
@@ -365,13 +367,6 @@ if [ -w /etc/dhclient-${DEVICE}.conf ] && [ -x /sbin/dhclient ] ; then
fi
if [ -n "${DYNCONFIG}" ]; then
- # copy any lease obtained by the initrd
- for file in /dev/.dhclient-${DEVICE}.leases /dev/.initramfs/net.${DEVICE}.lease /run/initramfs/net.${DEVICE}.lease; do
- if [ -f "${file}" ]; then
- mv -f $file /var/lib/dhclient/dhclient-${DEVICE}.leases
- [ -x /sbin/restorecon ] && restorecon /var/lib/dhclient/dhclient-${DEVICE}.leases > /dev/null 2>&1
- fi
- done
echo
echo -n $"Determining IP information for ${DEVICE}..."
if [[ "${PERSISTENT_DHCLIENT}" != [yY1]* ]] && check_link_down ${DEVICE}; then
@@ -450,7 +445,7 @@ else
fi
if ! LC_ALL=C ip addr ls ${REALDEVICE} | LC_ALL=C grep -q "${ipaddr[$idx]}/${prefix[$idx]}" ; then
- [ "${REALDEVICE}" != "lo" ] && \
+ [ "${REALDEVICE}" != "lo" ] && [ "${arpcheck[$idx]}" != "no" ] && \
if ! /sbin/arping -q -c 2 -w 3 -D -I ${REALDEVICE} ${ipaddr[$idx]} ; then
net_log $"Error, some other host already uses address ${ipaddr[$idx]}."
mdv-network-event connection_failure ${DEVICE}
@@ -507,7 +502,9 @@ fi
# IPv6 initialisation?
/etc/sysconfig/network-scripts/ifup-ipv6 ${CONFIG}
if [[ "${DHCPV6C}" = [Yy1]* ]] && [ -x /sbin/dhclient ]; then
- /sbin/dhclient -6 -1 ${DHCPV6C_OPTIONS} -lf /var/lib/dhclient/dhclient6-${DEVICE}.leases -pf /var/run/dhclient6-${DEVICE}.pid -H ${DHCP_HOSTNAME:-${HOSTNAME%%.*}} ${DEVICE}
+ generate_config_file_name 6
+ generate_lease_file_name 6
+ /sbin/dhclient -6 -1 ${DHCPV6C_OPTIONS} ${DHCLIENTCONF} -lf ${LEASEFILE} -pf /var/run/dhclient6-${DEVICE}.pid -H ${DHCP_HOSTNAME:-${HOSTNAME%%.*}} ${DEVICE}
fi
if [ "${IPX}" = yes ]; then
diff --git a/sysconfig/network-scripts/ifup-plip b/sysconfig/network-scripts/ifup-plip
index 48bcc2ca..c3b9efa1 100755
--- a/sysconfig/network-scripts/ifup-plip
+++ b/sysconfig/network-scripts/ifup-plip
@@ -11,21 +11,17 @@ then
exit
fi
-ifconfig ${DEVICE} ${IPADDR} pointopoint ${REMIP}
-route add -net ${NETWORK} netmask ${NETMASK} ${DEVICE}
-
-# this is broken! it's only here to keep compatibility with old RH systems
-if [ "${GATEWAY}" != "" -a "${GATEWAY}" != "none" ]
-then
- route add default gw ${GATEWAY} metric ${METRIC:-1} ${DEVICE}
-fi
+[ -z "$PREFIX" ] && eval $(/bin/ipcalc --prefix ${IPADDR} ${NETMASK})
+ip addr add ${IPADDR} peer ${REMIP}/${PREFIX} dev ${DEVICE}
+ip link set up dev ${DEVICE}
+ip route add ${NETWORK} dev ${DEVICE}
. /etc/sysconfig/network
if [ "${GATEWAY}" != "" ]; then
if [ "${GATEWAYDEV}" = "" -o "${GATEWAYDEV}" = "${DEVICE}" ]; then
# set up default gateway
- route add default gw ${GATEWAY} ${METRIC:+metric $METRIC}
+ ip route replace default ${METRIC:+metric $METRIC} via ${GATEWAY}
fi
fi
diff --git a/sysconfig/network-scripts/ifup-plusb b/sysconfig/network-scripts/ifup-plusb
index e185e647..ce5a0321 100644
--- a/sysconfig/network-scripts/ifup-plusb
+++ b/sysconfig/network-scripts/ifup-plusb
@@ -22,19 +22,21 @@ then
exit
fi
+[ -z "$PREFIX" ] && eval $(/bin/ipcalc --prefix ${IPADDR} ${NETMASK})
+
if [ ${BROADCAST} != "" ] ; then
- ifconfig ${DEVICE} ${IPADDR} pointopoint ${REMIP} netmask ${NETMASK}
-broadcast ${BROADCAST}
+ ip addr add ${IPADDR} peer ${REMIP}/${PREFIX} broadcast ${BROADCAST} dev ${DEVICE}
else
- ifconfig ${DEVICE} ${IPADDR} pointopoint ${REMIP} netmask ${NETMASK}
+ ip addr add ${IPADDR} peer ${REMIP}/${PREFIX} dev ${DEVICE}
fi
+ip link set up dev ${DEVICE}
. /etc/sysconfig/network
if [ "${GATEWAY}" != "" ]; then
if [ "${GATEWAYDEV}" = "" -o "${GATEWAYDEV}" = "${DEVICE}" ]; then
# set up default gateway
- route add default gw ${GATEWAY} ${METRIC:+metric $METRIC}
+ ip route replace default ${METRIC:+metric $METRIC} via ${GATEWAY}
fi
fi
diff --git a/sysconfig/network-scripts/ifup-post b/sysconfig/network-scripts/ifup-post
index a751bf38..2937bd3d 100755
--- a/sysconfig/network-scripts/ifup-post
+++ b/sysconfig/network-scripts/ifup-post
@@ -1,4 +1,4 @@
-#!/bin/sh
+
cd /etc/sysconfig/network-scripts
. ./network-functions
@@ -97,6 +97,11 @@ if [ "$2" = "boot" -a \
fi
fi
+# Inform firewall which network zone (empty means default) this interface belongs to
+if [ -x /usr/bin/firewall-cmd -a "${REALDEVICE}" != "lo" ]; then
+ /usr/bin/firewall-cmd --zone="${ZONE}" --change --interface="${DEVICE}" > /dev/null 2>&1
+fi
+
# Notify programs that have requested notification
do_netreport
diff --git a/sysconfig/network-scripts/ifup-sit b/sysconfig/network-scripts/ifup-sit
index 9e55146b..1d395e99 100644
--- a/sysconfig/network-scripts/ifup-sit
+++ b/sysconfig/network-scripts/ifup-sit
@@ -107,9 +107,5 @@ if [ -f /etc/sysconfig/static-routes-ipv6 ]; then
done
fi
-# Setup additional static IPv6 routes (newer config style)
-if [ -f "/etc/sysconfig/network-scripts/route6-$REALDEVICE" ]; then
- sed -ne 's/#.*//' -e '/[^[:space:]]/p' "/etc/sysconfig/network-scripts/route6-$REALDEVICE" | while read line; do
- /sbin/ip -6 route add $line
- done
-fi
+# Setup static routes
+/etc/sysconfig/network-scripts/ifup-routes ${REALDEVICE}
diff --git a/sysconfig/network-scripts/net.hotplug b/sysconfig/network-scripts/net.hotplug
deleted file mode 100755
index b10131d1..00000000
--- a/sysconfig/network-scripts/net.hotplug
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/bin/sh
-
-# Don't do anything if the network is stopped
-if [ ! -f /var/lock/subsys/network ]; then
- exit 0
-fi
-if [ -f /dev/.in_sysinit ] ; then
- exit 0
-fi
-
-. /etc/sysconfig/network-scripts/network-functions
-
-if [ "$INTERFACE" = "" ]; then
- exit 1
-fi
-
-[ "$(cat /sys/class/net/$INTERFACE/type)" != "1" ] && exit 0
-
-case $ACTION in
-add|register)
-
- case $INTERFACE in
- # interfaces that are brought up as a part of configuration
- ppp*|ippp*|isdn*|plip*|lo*|irda*|dummy*|ipsec*|tun*|tap*)
- exit 0
- ;;
- # interfaces that are registered then brought up
- *)
- export IN_HOTPLUG=1
- if [ -x /sbin/ifup ]; then
- addr=$(get_hwaddr ${INTERFACE})
- if [ -n "$addr" ]; then
- nconfig=$(get_config_by_hwaddr ${addr})
- [ -n "$nconfig" ] && INTERFACE=$nconfig
- fi
- exec /sbin/ifup $INTERFACE
- fi
- ;;
- esac
- ;;
-
-remove|unregister)
- case $INTERFACE in
- # interfaces that are brought down as part of deconfiguration
- ppp*|ippp*|isdn*|plip*|lo*|irda*|dummy*|ipsec*|tun*|tap*)
- exit 0
- ;;
- *)
- export IN_HOTPLUG=1
- if [ -x /sbin/ifdown ]; then
- exec /sbin/ifdown $INTERFACE
- fi
- ;;
- esac
- ;;
-
-*)
- exit 1 ;;
-
-esac
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 ()
diff --git a/sysconfig/readonly-root b/sysconfig/readonly-root
index ac03e565..7259e89e 100644
--- a/sysconfig/readonly-root
+++ b/sysconfig/readonly-root
@@ -13,7 +13,7 @@ RW_OPTIONS=
STATE_LABEL=stateless-state
# Where to mount to the persistent data
STATE_MOUNT=/var/lib/stateless/state
-# Options to use for peristent mount
+# Options to use for persistent mount
STATE_OPTIONS=
# NFS server to use for persistent data?
CLIENTSTATE=