network: removed obsolete code for interactive boot-time configuration using dialog
This commit is contained in:
parent
10aa2ca3ee
commit
b011e2aa40
@ -3,7 +3,7 @@
|
||||
# network - network plugin for postplug
|
||||
#
|
||||
# Copyright (c) 2004-2007 by Davide Madrisan <davide.madrisan@qilinux.it>
|
||||
# Copyright (c) 2009-2011 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
# Copyright (c) 2009-2013 by Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
#
|
||||
|
||||
if [ $UID != 0 ]; then
|
||||
@ -57,197 +57,9 @@ _EOF
|
||||
|
||||
}
|
||||
|
||||
|
||||
function eth_config() {
|
||||
# eth_config {--enable|--disable|--auto} <int_name>
|
||||
|
||||
TEMP=`LANG=C getopt -o eda --long enable,disable,auto -n "$FUNCNAME" -- "$@"`
|
||||
[[ $? = 0 ]] || return 1
|
||||
|
||||
eval set -- "$TEMP"
|
||||
|
||||
local action
|
||||
while :; do
|
||||
case $1 in
|
||||
-e|--enable)
|
||||
action="enable" ;;
|
||||
-d|--disable)
|
||||
action="disable" ;;
|
||||
-a|--auto)
|
||||
action="auto" ;;
|
||||
--) shift; break ;;
|
||||
*) logmsg "$me" "FIXME: "$"\`getopt' error"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
local eth_interface="$1"
|
||||
|
||||
[ "$eth_interface" ] ||
|
||||
{ logmsg "$me" "FIXME: "$"no interface set"
|
||||
exit 1; }
|
||||
|
||||
unset IF_IPADDR IF_NETMASK IF_NETWORK IF_BROADCAST DEST_GATEWAY_IF
|
||||
|
||||
if [ "$action" = "disable" ]; then
|
||||
cat > $network_devices/ifcfg-${eth_interface} << _EOF
|
||||
DEVICE=${eth_interface}
|
||||
ONBOOT=no
|
||||
_EOF
|
||||
return
|
||||
fi
|
||||
|
||||
$DIALOG --colors \
|
||||
--backtitle "\
|
||||
$dialog_backtitle -- "$"Network devices configuration" \
|
||||
--title $" LAN INTERFACE CONFIGURATION " \
|
||||
--yesno "
|
||||
"$"Automatically configure (DHCP) the \Z4$2\Zn interface?" 7 62
|
||||
|
||||
# configure DHCP for this interface
|
||||
if [ $? -eq 0 ]; then
|
||||
cat > $network_devices/ifcfg-${eth_interface} << _EOF
|
||||
DEVICE=${eth_interface}
|
||||
BOOTPROTO=dhcp
|
||||
ZONE=local
|
||||
ONBOOT=yes
|
||||
_EOF
|
||||
else # no DHCP. Ask for manual configuration
|
||||
while :; do
|
||||
$DIALOG --colors \
|
||||
--output-fd 4 \
|
||||
--ok-label "OK" --no-cancel \
|
||||
--backtitle "\
|
||||
$dialog_backtitle -- "$"Network interface configuration" \
|
||||
--title $" LAN INTERFACE CONFIGURATION ""(${eth_interface}) " \
|
||||
--form "
|
||||
"$"Please enter configuration for network interface" 10 54 2 \
|
||||
$"IP address:" 1 1 "$IF_IPADDR" 1 18 30 15 \
|
||||
$"Netmask:" 2 1 "$IF_NETMASK" 2 18 30 15 4>$tmpdialog
|
||||
|
||||
# workaround to correctly process blank field
|
||||
local field icount=0
|
||||
for field in $(sed 's/^/=/g' $tmpdialog); do
|
||||
field=$(echo $field | sed 's/^=//')
|
||||
case $icount in
|
||||
0) IF_IPADDR="$field" ;;
|
||||
1) IF_NETMASK="$field" ;;
|
||||
esac
|
||||
let icount+=1
|
||||
done
|
||||
|
||||
if [[ -n "$IF_IPADDR" && -n "$IF_NETMASK" ]]; then
|
||||
calculate_ip_parameters "$IF_IPADDR" "$IF_NETMASK"
|
||||
[[ $? -eq 0 ]] || {
|
||||
unset IF_IPADDR IF_NETMASK; continue; }
|
||||
|
||||
IF_NETWORK=$network
|
||||
IF_BROADCAST=$broadcast
|
||||
break
|
||||
fi
|
||||
done
|
||||
cat > $network_devices/ifcfg-${eth_interface} << _EOF
|
||||
DEVICE=${eth_interface}
|
||||
ONBOOT=yes
|
||||
IPADDR=$IF_IPADDR
|
||||
NETWORK=$IF_NETWORK
|
||||
NETMASK=$IF_NETMASK
|
||||
BROADCAST=$IF_BROADCAST
|
||||
#NM_CONTROLLED=no
|
||||
_EOF
|
||||
fi
|
||||
}
|
||||
|
||||
# FIXME
|
||||
DEST_GATEWAY_ZONE=local
|
||||
|
||||
# Get Default Gateway IP address and DNS addresses
|
||||
function net_config() {
|
||||
unset DEST_GATEWAY_IP DNS_PRIMARY DNS_SECONDARY DEST_DOMAIN
|
||||
let "retval = 0"
|
||||
|
||||
while test $retval != 99; do
|
||||
let "error = 0"
|
||||
$DIALOG --colors \
|
||||
--cr-wrap \
|
||||
--output-fd 4 \
|
||||
--no-cancel \
|
||||
--backtitle "\
|
||||
$dialog_backtitle -- "$"Network devices configuration" \
|
||||
--title $" DEFAULT GATEWAY / DNS ADDRESSES / DOMAIN " \
|
||||
--form "
|
||||
"$"Please enter the IP addresses of the \Z1default gateway\Zn, \
|
||||
\Z1primary DNS server\Zn and \Z1secondary DNS server\Zn (optional) \
|
||||
and the domain name." 13 72 4 \
|
||||
$"Default gateway:" 1 1 "$DEST_GATEWAY_IP" 1 22 44 15 \
|
||||
$"Primary DNS:" 2 1 "$DNS_PRIMARY" 2 22 44 15 \
|
||||
$"Secondary DNS:" 3 1 "$DNS_SECONDARY" 3 22 44 15 \
|
||||
$"Domain:" 4 1 "$DEST_DOMAIN" 4 22 44 15 4>$tmpdialog
|
||||
|
||||
case $? in
|
||||
0) # workaround to correctly process blank fields and chars
|
||||
let "icount = 0"
|
||||
for field in $(sed 's/ /+_:\./g; s/^/=/g' $tmpdialog); do
|
||||
field=`echo $field | sed 's/^=//; s/+_:\./ /g'`
|
||||
case $icount in
|
||||
0) DEST_GATEWAY_IP="$field"
|
||||
# check for invalid IP addresses
|
||||
ip_check_args "$DEST_GATEWAY_IP/32"
|
||||
[[ $? -eq 1 ]] ||
|
||||
{ unset DEST_GATEWAY_IP; let "error += 1"; } ;;
|
||||
1) DNS_PRIMARY="$field"
|
||||
ip_check_args "$DNS_PRIMARY/32"
|
||||
[[ $? -eq 1 ]] ||
|
||||
{ unset DNS_PRIMARY; let "error += 1"; } ;;
|
||||
2) DNS_SECONDARY="$field"
|
||||
if test -n "$DNS_SECONDARY"; then
|
||||
ip_check_args "$DNS_SECONDARY/32"
|
||||
[[ $? -eq 1 ]] ||
|
||||
{ unset DNS_SECONDARY; let "error += 1"; }
|
||||
fi ;;
|
||||
3) DESTHOSTNAME="$field" ;;
|
||||
esac
|
||||
let "icount += 1"
|
||||
done
|
||||
|
||||
[[ $error -eq 0 ]] && let "retval = 99" || continue
|
||||
|
||||
# DNS_SECONDARY is optional
|
||||
if [[ -n "$DEST_GATEWAY_IP" && -n "$DNS_PRIMARY" ]]; then
|
||||
# FIXME : has /etc/resolv.conf already been configured?
|
||||
[[ -e $resolv_conf ]] && sed -i '/#/d' $resolv_conf
|
||||
cat >> $resolv_conf << _EOF
|
||||
domain $DESTHOSTNAME
|
||||
search $DESTHOSTNAME
|
||||
nameserver $DNS_PRIMARY
|
||||
_EOF
|
||||
[[ "$DNS_SECONDARY" ]] &&
|
||||
echo "nameserver $DNS_SECONDARY" >> $resolv_conf
|
||||
sed -i '/nameserver 127.0.0.1/d' $resolv_conf
|
||||
# we want this line in the last position
|
||||
echo "nameserver 127.0.0.1" >> $resolv_conf
|
||||
fi
|
||||
|
||||
(cd /etc/sysconfig/$network_devices/ &&
|
||||
for sysconfile in $(ls ifcfg-* 2>/dev/null); do
|
||||
. $sysconfile
|
||||
# configure the default gateway using the first
|
||||
# interface not configured with DHCP
|
||||
if [[ "$ONBOOT" = yes && "$BOOTPROTO" != dhcp ]]; then
|
||||
sed -i "/GATEWAY=/d;/GATEWAY_IF=/d" $sysconf_network
|
||||
echo "\
|
||||
GATEWAY_IF=${sysconfile##*\.}
|
||||
GATEWAY=$DEST_GATEWAY_IP" >> $sysconf_network
|
||||
break
|
||||
fi
|
||||
done) ;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
wlan_ints=()
|
||||
for wlan_int in $(cat /proc/net/wireless 2>/dev/null | sed -n '/[a-z]*[0-9]*:/{s,:.*,,;p}'); do
|
||||
# checks for existing physical interfaces
|
||||
@ -284,34 +96,6 @@ if [ ${#eth_ints[*]} -gt 0 ]; then
|
||||
done
|
||||
exit
|
||||
;;
|
||||
"dialog")
|
||||
tmpdialog=`mktemp -q -t ${0##*/}.XXXXXXXX` ||
|
||||
{ logmsg "$me" "error: "$"cannot create temporary files"
|
||||
{ (exit 1); exit 1; }; }
|
||||
trap "rm -f $tmpdialog" 0 1 2 3 5 15
|
||||
|
||||
$DIALOG --clear --colors $dialog_timeout_cmd \
|
||||
--backtitle "\
|
||||
$dialog_backtitle -- "$"Network devices configuration" \
|
||||
--title $" LAN INTERFACE CONFIGURATION " \
|
||||
--yesno "
|
||||
"$"Found ${#eth_ints[*]} LAN interface(s) not configured.""
|
||||
"$"Do you want to start the configuration wizard?" 8 62 2>/dev/null
|
||||
|
||||
case $? in
|
||||
0) # ask configuration for all the eth. interfaces
|
||||
for eth_int in ${eth_ints[*]}; do
|
||||
eth_config --enable $eth_int
|
||||
let "int_newconf += 1"
|
||||
done ;;
|
||||
1) # disable all the ethernet interfaces
|
||||
for eth_int in ${eth_ints[*]}; do
|
||||
eth_config --disable $eth_int
|
||||
done
|
||||
exit ;;
|
||||
*) : ;; # timeout (code = 255)
|
||||
esac
|
||||
;;
|
||||
"off"|"")
|
||||
exit
|
||||
;;
|
||||
@ -323,7 +107,6 @@ illegal value for NETWORK_NEWDEVICE ($NETWORK_NEWDEVICE)"
|
||||
fi
|
||||
|
||||
if [ ${#wlan_ints[*]} -gt 0 ]; then
|
||||
# FIXME: wlan dialog support is missing
|
||||
case "$NETWORK_NEWDEVICE" in
|
||||
"auto")
|
||||
for wlan_int in ${wlan_ints[*]}; do
|
||||
@ -335,45 +118,4 @@ if [ ${#wlan_ints[*]} -gt 0 ]; then
|
||||
esac
|
||||
fi
|
||||
|
||||
# if at least one of the new interfaces has been configured...
|
||||
if [ $NETWORK_NEWDEVICE = "dialog" -a $int_newconf -gt 0 ]; then
|
||||
|
||||
for eth_int in ${eth_ints[*]}; do
|
||||
[ -r $network_devices/ifcfg-$eth_int ] || continue
|
||||
unset BOOTPROTO
|
||||
. $network_devices/ifcfg-$eth_int
|
||||
[ "$BOOTPROTO" = "dhcp" ] && exit
|
||||
done
|
||||
|
||||
for wlan_int in ${wlan_ints[*]}; do
|
||||
[ -r $network_devices/ifcfg-$wlan_int ] || continue
|
||||
unset BOOTPROTO
|
||||
. $network_devices/ifcfg-$wlan_int
|
||||
[ "$BOOTPROTO" = "dhcp" ] && exit
|
||||
done
|
||||
|
||||
# if no interface has been configured as DHCP interface
|
||||
# get the Default Gateway + DNS + Domain infos via a dialog window
|
||||
net_config
|
||||
$DIALOG --clear
|
||||
fi
|
||||
|
||||
# modify the file /etc/hosts if a static IP has been configured
|
||||
#if grep -Eq "^127\.0\.0\.1 `hostname -f`" /etc/hosts; then
|
||||
# get_interfaces_by_zone
|
||||
# # check first local interfaces, then public ones and finally dmz interfaces
|
||||
# for if_name in ${ifzone_local[*]} ${ifzone_public[*]} ${ifzone_dmz[*]}; do
|
||||
# get_interface_parameters $if_name
|
||||
# if [[ $? -eq 0 && "$int_static_ip" = 1 ]]; then
|
||||
# sed -i "\
|
||||
#/127\.0\.0\.1 `hostname -f`/{
|
||||
# s/.*/127.0.0.1 localhost.localdomain localhost/}
|
||||
# /127.0.0.1.*/a\\
|
||||
#$int_ip `hostname -f` `hostname`" /etc/hosts
|
||||
# fi
|
||||
# done
|
||||
#fi
|
||||
|
||||
rm -f $tmpdialog
|
||||
|
||||
exit 0
|
||||
|
Loading…
Reference in New Issue
Block a user