# $Header: /home/cvsd/alx-cvs/alx-src/alxconfig-ng/functions/config_network.sh,v 1.3 2005-03-08 20:44:32 niro Exp $ # configures networkin on the host via mysql db settings get_network_settings() { local x i all DB_NETWORK #all arrays: # -> hostname modules domain networking ip netmask dns gateway broadcast all=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \ "select hostname, module, domain, networking, ip, netmask, dns, gateway, broadcast from cfg_network where serial='${ALX_SERIAL}'") #split'em up and put 'em in an array declare -i i=0 for x in ${all} do DB_NETWORK[${i}]="${x}" ((i++)) done # and now put them in usable var names and export them systemwide export ALX_HOSTNAME="${DB_NETWORK[0]:=NULL}" export ALX_MODULE="${DB_NETWORK[1]:=NULL}" export ALX_DOMAIN="${DB_NETWORK[2]:=NULL}" export ALX_NETWORKING="${DB_NETWORK[3]:=NULL}" export ALX_IP="${DB_NETWORK[4]:=NULL}" export ALX_NETMASK="${DB_NETWORK[5]:=NULL}" export ALX_DNS="${DB_NETWORK[6]:=NULL}" export ALX_GATEWAY="${DB_NETWORK[7]:=NULL}" export ALX_BROADCAST="${DB_NETWORK[8]:=NULL}" } config_networking() { #first of all get the vars get_network_settings # debug echo "0: ${ALX_HOSTNAME}" echo "1: ${ALX_MODULE}" echo "2: ${ALX_DOMAIN}" echo "3: ${ALX_NETWORKING}" echo "4: ${ALX_IP}" echo "5: ${ALX_NETMASK}" echo "6: ${ALX_DNS}" echo "7: ${ALX_GATEWAY}" echo "8: ${ALX_BROADCAST}" # hostname && hosts echo "${ALX_HOSTNAME}" > /etc/hostname echo -e "127.0.0.1\t${ALX_HOSTNAME}.${ALX_DOMAIN}\t${ALX_HOSTNAME}" > /etc/hosts # network devices # always on boot echo 'ONBOOT="yes"' > /etc/conf.d/net.eth0 echo "NETWORKING=\"${ALX_NETWORKING}\"" >> /etc/conf.d/net.eth0 case ${ALX_NETWORKING} in dhcp|DHCP) echo 'DHCP_PROG="/sbin/dhcpcd"' >> /etc/conf.d/net.eth0 # -k kills the dhcp-cache at system shutdown # -z will not echo 'DHCP_STOP="-z"' >> /etc/conf.d/net.eth0 #timeout after 10 seconds echo 'DHCP_START="-t 10"' >> /etc/conf.d/net.eth0 ;; static|STATIC) # add hostname with valid ip to hosts echo -e "${ALX_IP}\t${ALX_HOSTNAME}.${ALX_DOMAIN}\t${ALX_HOSTNAME}" >> /etc/hosts echo "IP=\"${ALX_IP}\"" >> /etc/conf.d/net.eth0 echo "NETMASK=\"${ALX_NETMASK}\"" >> /etc/conf.d/net.eth0 echo "BROADCAST=\"${ALX_BROADCAST}\"" >> /etc/conf.d/net.eth0 ;; esac # gateway or gateway overrides if [[ ${ALX_GATEWAY} != NULL ]] then echo "GATEWAY=\"${ALX_GATEWAY}\"" >> /etc/conf.d/net.eth0 echo 'GATEWAY_IF="eth0"' >> /etc/conf.d/net.eth0 fi # nameserver or nameserver overrides if [[ ${ALX_DNS} != NULL ]] then echo "nameserver ${ALX_DNS}" > /etc/resolv.conf fi # unset all vars unset ALX_HOSTNAME unset ALX_MODULE unset ALX_DOMAIN unset ALX_NETWORKING unset ALX_IP unset ALX_NETMASK unset ALX_DNS unset ALX_GATEWAY unset ALX_BROADCAST }