--- alx-src/branches/alxconf-060/functions/config_network.sh 2011/05/16 11:06:46 2120 +++ alx-src/branches/alxconf-060/functions/config_network.sh 2011/05/17 11:44:27 2145 @@ -1,76 +1,21 @@ # $Id$ # configures networking 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=$(mysqldo "select iface, - 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 in usable var names and export them systemwide - export ALX_IFACE="${DB_NETWORK[0]:=NULL}" - export ALX_HOSTNAME="${DB_NETWORK[1]:=NULL}" - export ALX_MODULE="${DB_NETWORK[2]:=NULL}" - export ALX_DOMAIN="${DB_NETWORK[3]:=NULL}" - export ALX_NETWORKING="${DB_NETWORK[4]:=NULL}" - export ALX_IP="${DB_NETWORK[5]:=NULL}" - export ALX_NETMASK="${DB_NETWORK[6]:=NULL}" - export ALX_DNS="${DB_NETWORK[7]:=NULL}" - export ALX_GATEWAY="${DB_NETWORK[8]:=NULL}" - export ALX_BROADCAST="${DB_NETWORK[9]:=NULL}" - - # the new mac address hack - export ALX_FORCEMACTO=$(mysqldo "select forcemacto from cfg_network where serial='${ALX_SERIAL}'") - - # wireless extensions - export ALX_WIRELESS_BITRATE=$(mysqldo "select wireless_bitrate from cfg_network where serial='${ALX_SERIAL}'") - export ALX_WIRELESS_CHANNEL=$(mysqldo "select wireless_channel from cfg_network where serial='${ALX_SERIAL}'") - export ALX_WIRELESS_ESSID=$(mysqldo "select wireless_essid from cfg_network where serial='${ALX_SERIAL}'") - export ALX_WIRELESS_FREQUENCY=$(mysqldo "select wireless_frequency from cfg_network where serial='${ALX_SERIAL}'") - export ALX_WIRELESS_MODE=$(mysqldo "select wireless_mode from cfg_network where serial='${ALX_SERIAL}'") - export ALX_WIRELESS_NICK=$(mysqldo "select wireless_nick from cfg_network where serial='${ALX_SERIAL}'") - export ALX_WIRELESS_AUTH_MODE=$(mysqldo "select wireless_auth_mode from cfg_network where serial='${ALX_SERIAL}'") - export ALX_WIRELESS_KEY_LENGTH=$(mysqldo "select wireless_key_length from cfg_network where serial='${ALX_SERIAL}'") - export ALX_WIRELESS_KEY=$(mysqldo "select wireless_key from cfg_network where serial='${ALX_SERIAL}'") - export ALX_WIRELESS_KEY_ASCII=$(mysqldo "select wireless_key_ascii from cfg_network where serial='${ALX_SERIAL}'") -} - config_networking() { local iface local CONFIG # first of all get the vars - get_network_settings + evaluate_table cfg_network # get the right nic - if [[ -z ${ALX_IFACE} ]] || [[ ${ALX_IFACE} = NULL ]] + if [[ -z ${cfg_network_iface} ]] || [[ ${cfg_network_iface} = NULL ]] then # default is 'eth0' iface="eth0" else - iface="${ALX_IFACE}" + iface="${cfg_network_iface}" fi # remove all old nics and modules configs @@ -86,7 +31,7 @@ then CONFIG=/etc/modprobe.d/net.${iface}.conf clearconfig - addconfig "alias ${iface} ${ALX_MODULE}" + addconfig "alias ${iface} ${cfg_network_module}" fi # update confd-networking default iface @@ -98,14 +43,14 @@ # hostname && hosts CONFIG=/etc/hostname clearconfig - addconfig "${ALX_HOSTNAME}" + addconfig "${cfg_network_hostname}" CONFIG=/etc/hosts clearconfig - addconfig -e "127.0.0.1\tlocalhost.${ALX_DOMAIN}\tlocalhost\t${ALX_HOSTNAME}" - case ${ALX_NETWORKING} in + addconfig -e "127.0.0.1\tlocalhost.${cfg_network_domain}\tlocalhost\t${cfg_network_hostname}" + case ${cfg_network_networking} in static|STATIC) # add hostname with valid ip to hosts - addconfig -e "${ALX_IP}\t${ALX_HOSTNAME}.${ALX_DOMAIN}\t${ALX_HOSTNAME}" + addconfig -e "${ALX_IP}\t${cfg_network_hostname}.${cfg_network_domain}\t${cfg_network_hostname}" ;; esac @@ -116,8 +61,8 @@ clearconfig addconfig 'ONBOOT="yes"' - addconfig "NETWORKING=\"${ALX_NETWORKING}\"" - case ${ALX_NETWORKING} in + addconfig "NETWORKING=\"${cfg_network_networking}\"" + case ${cfg_network_networking} in dhcp|DHCP) addconfig 'DHCP_PROG="/sbin/udhcpc"' addconfig 'DHCP_STOP=""' @@ -126,40 +71,40 @@ ;; static|STATIC) - addconfig "IP=\"${ALX_IP}\"" - addconfig "NETMASK=\"${ALX_NETMASK}\"" - addconfig "BROADCAST=\"${ALX_BROADCAST}\"" + addconfig "IP=\"${cfg_network_ip}\"" + addconfig "NETMASK=\"${cfg_network_netmask}\"" + addconfig "BROADCAST=\"${cfg_network_broadcast}\"" ;; esac # force mac address override - if [[ ${ALX_FORCEMACTO} != NULL ]] + if [[ ${cfg_network_forcemacto} != NULL ]] then - addconfig "FORCE_MAC_TO=\"${ALX_FORCEMACTO}\"" + addconfig "FORCE_MAC_TO=\"${cfg_network_forcemacto}\"" fi # wireless extensions local value local var - for var in ALX_WIRELESS_BITRATE \ - ALX_WIRELESS_CHANNEL \ - ALX_WIRELESS_ESSID \ - ALX_WIRELESS_FREQUENCY \ - ALX_WIRELESS_MODE \ - ALX_WIRELESS_NICK \ - ALX_WIRELESS_AUTH_MODE \ - ALX_WIRELESS_KEY_LENGTH \ - ALX_WIRELESS_KEY \ - ALX_WIRELESS_KEY_ASCII + for var in bitrate \ + channel \ + essid \ + frequency \ + mode \ + nick \ + auth_mode \ + key_length \ + key \ + key_ascii do # get the value of $var - eval value=\$$(echo ${var}) + eval value="\${cfg_network_wireless_$(echo ${var})}" # write it only if not empty if [[ -n ${value} ]] && [[ ${value} != NULL ]] then - # remove ALX_ from var - addconfig "${var/ALX_/}=\"${value}\"" + # add WIRELESS and use uppercases + addconfig "WIRELESS_$(echo ${var} | tr [[:lower:] [[:upper:]])=\"${value}\"" fi # clear value @@ -168,7 +113,7 @@ # FIXME !!! # setup wpa-driver (only zydas atm) - if [[ ${ALX_MODULE} = zd1211 ]] + if [[ ${cfg_network_module} = zd1211 ]] then addconfig "WIRELESS_WPA_DRIVER=zydas" fi @@ -176,39 +121,16 @@ CONFIG=/etc/conf.d/net.routes clearconfig # gateway or gateway overrides - if [[ ${ALX_GATEWAY} != NULL ]] + if [[ ${cfg_network_gateway} != NULL ]] then - addconfig "default gw ${ALX_GATEWAY}" + addconfig "default gw ${cfg_network_gateway}" fi CONFIG=/etc/resolv.conf clearconfig # nameserver or nameserver overrides - if [[ ${ALX_DNS} != NULL ]] + if [[ ${cfg_network_dns} != NULL ]] then - addconfig "nameserver ${ALX_DNS}" + addconfig "nameserver ${cfg_network_dns}" 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 - unset ALX_FORCEMACTO - unset ALX_IFACE - unset ALX_WIRELESS_BITRATE - unset ALX_WIRELESS_CHANNEL - unset ALX_WIRELESS_ESSID - unset ALX_WIRELESS_FREQUENCY - unset ALX_WIRELESS_MODE - unset ALX_WIRELESS_NICK - unset ALX_WIRELESS_AUTH_MODE - unset ALX_WIRELESS_KEY_LENGTH - unset ALX_WIRELESS_KEY - unset ALX_WIRELESS_KEY_ASCII }