diff options
Diffstat (limited to 'abs/core/LinHES-config/networkconfig.sh')
-rw-r--r-- | abs/core/LinHES-config/networkconfig.sh | 341 |
1 files changed, 341 insertions, 0 deletions
diff --git a/abs/core/LinHES-config/networkconfig.sh b/abs/core/LinHES-config/networkconfig.sh new file mode 100644 index 0000000..770aa98 --- /dev/null +++ b/abs/core/LinHES-config/networkconfig.sh @@ -0,0 +1,341 @@ +#!/bin/bash +#. /etc/profile +#. /etc/systemconfig +#BASE=/tmp +ETCNETDIR=$BASE/etc/net/ifaces + + + +function kill_dhcp () +{ +#for i in ${BASE}/etc/dhcpc/dhcpcd-*.pid +for i in ${BASE}/var/run/dhcpcd-*.pid +do + if [ -f ${i} ] + then + pid=`cat ${i}` + kill -9 $pid + rm -f ${i} + fi + if [ x$1 = xflush ] + then + for ifdev in eth0 wlan0 eth1 wlan1 + do + echo ${i} |grep $ifdev + status=$? + if [ $status = 1 ] + then + ip address flush $ifdev + fi + done + fi + +done + +} + +function kill_dhcp_chroot () +{ +#for i in ${BASE}/etc/dhcpc/dhcpcd-*.pid +for i in ${mountpoint}/var/run/dhcpcd-*.pid +do + if [ -f ${i} ] + then + pid=`cat ${i}` + kill -9 $pid + rm -f ${i} + fi +done + +} + + + +function setup_nameserver(){ +grep -q $1 ${BASE}/etc/resolv.conf +status=$? +if [ ! $status = 0 ] +then + echo "nameserver $1" >> ${BASE}/etc/resolv.conf +fi + +} + +function change_iface_state () { + if [ x$2 = xenabled ] + then + echo "setting $1 to active" + sed -i -e 's/^ONBOOT=.*$/ONBOOT=yes/g' $ETCNETDIR/$1/options + sed -i -e 's/^DISABLED=.*$/DISABLED=no/g' $ETCNETDIR/$1/options + else + echo "setting $1 to inactive" + if [ -e $ETCNETDIR/$1/options ] + then + sed -i -e 's/^ONBOOT=.*$/ONBOOT=no/g' $ETCNETDIR/$1/options + sed -i -e 's/^DISABLED=.*$/DISABLED=yes/g' $ETCNETDIR/$1/options + fi + /sbin/ifconfig $1 down + ip address flush $1 + fi + +} + +function setup_interfaces() { + local IS_WIRELESS + local ip + local netmask + local isactive + local dns + local UseDHCP + local GW + local ESSID + local KEY + local ENCRYPT + local TEMPNET + local MTU + IS_WIRELESS=false + + #local ip + TEMPNET="Hostip"$1 + echo $TEMPNET + eval ip=\$${TEMPNET} + + TEMPNET=Hostnetmask$1 + eval netmask=\$${TEMPNET} + netmask=`echo "$netmask" | cut -d " " -f1` + + TEMPNET=HostActive$1 + eval isactive=\$${TEMPNET} + + TEMPNET=HostDNS$1 + eval dns=\$${TEMPNET} + + TEMPNET="HostUSEDHCP"$1 + eval UseDHCP=\$${TEMPNET} + + TEMPNET=HostGW$1 + eval GW=\$${TEMPNET} + + TEMPNET=HOST_iswireless$1 + eval wireless=\$${TEMPNET} + + TEMPNET=HostMTU$1 + eval MTU=\$${TEMPNET} + + + + if [ x$wireless = x1 ] + then + IS_WIRELESS=TRUE + TEMPNET=HostESSID$1 + eval ESSID=\$${TEMPNET} + + TEMPNET="HostKey"$1 + eval KEY=\$${TEMPNET} + + TEMPNET=HostUseEncryption$1 + eval ENCRYPT=\$${TEMPNET} + fi + + + echo "Setup $1 in progress, wireless: $IS_WIRELESS" + + if [ ! -d $ETCNETDIR/$1 ] + then + mkdir -p $ETCNETDIR/$1 + fi + + if [ ! -f $ETCNETDIR/$1/options ] + then + cp -f $TEMPLATES/etcnet/eth/options $ETCNETDIR/$1/options + fi + + if [ x$isactive = x1 ] + then + change_iface_state $1 enabled + #echo "setting $1 to active" + #sed -i -e 's/^ONBOOT=.*$/ONBOOT=yes/g' $ETCNETDIR/$1/options + #sed -i -e 's/^DISABLED=.*$/DISABLED=no/g' $ETCNETDIR/$1/options + else + change_iface_state $1 disabled + #echo "setting $1 to inactive" + #sed -i -e 's/^ONBOOT=.*$/ONBOOT=no/g' $ETCNETDIR/$1/options + #sed -i -e 's/^DISABLED=.*$/DISABLED=yes/g' $ETCNETDIR/$1/options + fi + + if [ x$IS_WIRELESS = xTRUE ] + then + echo "setting $1 wireless" + sed -i -e 's/^CONFIG_WIRELESS=.*$/CONFIG_WIRLESS=yes/g' $ETCNETDIR/$1/options + #set the key and essid + echo "essid $ESSID" > $ETCNETDIR/$1/iwconfig + if [ x$ENCRYPT = x1 ] + then + echo "key $KEY" >> $ETCNETDIR/$1/iwconfig + fi + + else + echo "disabling wireless" + sed -i -e 's/^CONFIG_WIRLESS=.*$/CONFIG_WIRLESS=no/g' $ETCNETDIR/$1/options + fi + + if [ x$UseDHCP = x0 ] + then + echo using dhcp + sed -i -e 's/^BOOTPROTO=.*$/BOOTPROTO=dhcp/g' $ETCNETDIR/$1/options + + else + echo "using static ip" + sed -i -e 's/^BOOTPROTO=.*$/BOOTPROTO=static/g' $ETCNETDIR/$1/options + echo "default via $GW" > $ETCNETDIR/$1/ipv4route + echo "$ip$netmask" > $ETCNETDIR/$1/ipv4address + setup_nameserver $dns + fi + + if [ x$MTU = x ] + then + echo "MTU is blank, card will use default values" + sed -i '/^mtu.*$/d' /etc/net/ifaces/$1/iplink + else + echo "setting mtu for $1 to $MTU" + sed -i '/^mtu.*$/d' /etc/net/ifaces/$1/iplink + echo "mtu $MTU " >> /etc/net/ifaces/$1/iplink + fi +} + + +function find_active () { +#HostActiveeth1="1" +rm -f ${BASE}/etc/resolv.conf +if [ x$MYTHDHCP = x1 ] + then + #add 127.0.0.1 to /etc/resolv.conf + echo "search lan" > ${BASE}/etc/resolv.conf + echo "nameserver 127.0.0.1" >> ${BASE}/etc/resolv.conf + fi + +for i in eth0 eth1 wlan0 wlan1 +do + CURRENTIF="HostActive"$i + eval IFSTATE=\$${CURRENTIF} + echo $IFSTATE "---" + echo $i + if [ x$IFSTATE = x1 ] + then + setup_interfaces $i + else + change_iface_state $i disabled + fi +done + +} + +function setup_hostname { +#set the hostname +if [ ! x$hostname = x ] +then + echo $hostname > ${BASE}/etc/hostname + cat $BASE/etc/hosts |grep -v 127.0.0.1|grep -v $hostname > /tmp/hosts + #cat $BASE/etc/hosts |grep -v 127.0.0.1|grep -v $hostname | grep -v $ip > /tmp/hosts + + if [ x$MYTHDHCP = x1 ] + then + echo "127.0.0.1 localhost " > ${BASE}/etc/hosts + echo "$MYTHIP $hostname " >> ${BASE}/etc/hosts + else + echo "127.0.0.1 $hostname localhost " > ${BASE}/etc/hosts + fi + cat /tmp/hosts >> ${BASE}/etc/hosts +fi + +kill_dhcp +} + +function vnc_check() { + CMDLINE=$(cat /proc/cmdline) + echo $CMDLINE |grep -q vnc + USEVNC=$? + echo $CMDLINE |grep -q nfsroot + NETBOOT=$? + echo $USEVNC + if [ ! x$USEVNC = x0 ] + then + echo "not using vnc" + if [ ! x$NETBOOT = x0 ] + then + echo "not using netboot" + else + echo "using netboot" + USEVNC=0 + fi + + else + echo " using vnc" + fi +} + +function setup_MYTH_vars { + TEMPMYTH="Hostip"$default_interface + #echo $TEMPMYTH + eval MYTHIP=\$${TEMPMYTH} + + TEMPMYTH="HostUSEDHCP"$default_interface + eval MYTHDHCP=\$${TEMPMYTH} + + + +} + + + + +function start_network { +if [ ! $USEVNC = 0 ] +then + /etc/net/scripts/network.init reload + /etc/net/scripts/network.init restart +else + echo "VNC/NETBOOT in use, will NOT restart network" +fi + +} + +function setup_network { + setup_MYTH_vars + setup_hostname + find_active +} + + +function stop_network { +if [ ! $USEVNC = 0 ] +then + echo "stopping the network" + kill_dhcp flush + ip address flush dev eth0 2>&1 >/dev/null + ip address flush dev eth1 2>&1 >/dev/null + ip address flush dev wlan0 2>&1 >/dev/null + ip address flush dev wlan1 2>&1 >/dev/null +else + echo "VNC/NETBOOT in use, will NOT restart network" +fi + +} + + +#this is used by the install process to start the network +function install_network_setup { + setup_MYTH_vars + setup_hostname + stop_network + find_active + start_network + +} + + + + + + + |