# $Id$ # configures networking on the host via mysql db settings # needs exported iface variable! add_iface_cfg() { echo "$@" >> /etc/conf.d/net.${iface} } config_networking() { local iface # retrieve informations about hostname and co evaluate_table_xml cfg_network # configure hostname and domain settings: echo "${cfg_network_hostname}" > /etc/hostname echo -e "127.0.0.1\tlocalhost.${cfg_network_domain}\tlocalhost\t${cfg_network_hostname}" > /etc/hosts # if ! check_network_settings # then # echo -e "${COLYELLOW}Could not retrieve network settings, doing nothing ...${COLDEFAULT}" # return 1 # fi # remove all old nics and modules configs find /etc/conf.d -type f -name 'net.*' | xargs rm # configure all available interfaces but activate only the default_iface! iface_list=$(mysqldo "select iface from cfg_interfaces where serial='${ALX_SERIAL}'") for iface in ${iface_list} do # initialize the config :> /etc/conf.d/net.${iface} # retrieve information from mysql evaluate_table_xml cfg_interfaces "where serial='${ALX_SERIAL}' and iface='${iface}'" if [[ ${iface} = ${cfg_network_default_iface} ]] then add_iface_cfg "ONBOOT=yes" else add_iface_cfg "ONBOOT=no" fi add_iface_cfg NETWORKING=${cfg_interfaces_networking} case ${cfg_interfaces_networking} in dhcp|DHCP) add_iface_cfg "DHCP_PROG=/sbin/udhcpc" # timeout after 10 seconds and quit after retrieving a lease add_iface_cfg 'DHCP_START="-t 10 -q"' ;; static|STATIC) # add hostname with valid ip to hosts echo -e "${cfg_interfaces_ip}\t${cfg_interfaces_hostname}.${cfg_interfaces_domain}\t${cfg_interfaces_hostname}" >> /etc/hosts add_iface_cfg "IP=${cfg_interfaces_ip}" add_iface_cfg "NETMASK=${cfg_interfaces_netmask}" add_iface_cfg "BROADCAST=${cfg_interfaces_broadcast}" ;; esac # gateway or gateway overrides if [[ ${cfg_interfaces_gateway} != NULL ]] then add_iface_cfg "GATEWAY=${cfg_interfaces_gateway}" fi # nameserver or nameserver overrides if [[ ${cfg_interfaces_dns} != NULL ]] then add_iface_cfg "NAMESERVER="${cfg_interfaces_dns}"" fi # force mac address override if [[ ${cfg_interfaces_forcemacto} != NULL ]] then add_iface_cfg FORCE_MAC_TO=${cfg_interfaces_forcemacto} fi # wireless extensions local value local var for var in cfg_interfaces_wireless_bitrate \ cfg_interfaces_wireless_channel \ cfg_interfaces_wireless_essid \ cfg_interfaces_wireless_frequency \ cfg_interfaces_wireless_mode \ cfg_interfaces_wireless_nick \ cfg_interfaces_wireless_auth_mode \ cfg_interfaces_wireless_key_length \ cfg_interfaces_wireless_key \ cfg_interfaces_wireless_key_ascii do # get the value of $var eval value=\$$(echo ${var}) # write it only if not empty if [[ -n ${value} ]] && [[ ${value} != NULL ]] then # remove cfg_interfaces_from var and convert to upcase add_iface_cfg "$(echo ${var/cfg_network_/} | tr '[:lower:]' '[:upper:]')=${value}" fi # clear value unset value done # setup wpa-driver (only zydas atm) case ${cfg_interfaces_module} in zd1211) add_iface_cfg "WIRELESS_WPA_DRIVER=zydas" ;; esac done }