Magellan Linux

Diff of /alx-src/trunk/tinyalxconfig-ng/functions/config_network.sh

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 454 by niro, Thu Jun 5 19:08:36 2008 UTC revision 455 by niro, Thu Jun 5 19:09:51 2008 UTC
# Line 1  Line 1 
1  # $Header: /home/cvsd/alx-cvs/alx-src/tinyalxconfig-ng/functions/config_network.sh,v 1.8 2008-06-05 19:08:36 niro Exp $  # $Header: /home/cvsd/alx-cvs/alx-src/tinyalxconfig-ng/functions/config_network.sh,v 1.9 2008-06-05 19:09:51 niro Exp $
2  # configures networkin on the host via mysql db settings  # configures networkin on the host via mysql db settings
3    
 get_network_settings_old()  
 {  
  local all_ifaces  
  local iface  
  local x  
   
  # get a list of all interfaces  
  all_ifaces=$(mysqldo "select iface from cfg_interface where serial='${ALX_SERIAL}'")  
   
  # retrieve hostname and domain information  
  evaluate_table cfg_network  
  export ALX_HOSTNAME="${cfg_network_hostname}"  
  export ALX_DOMAIN="${cfg_network_domain}"  
   
  # now build a multi-ranged "array" for all interface settings  
  declare -i x=0  
   
  for iface in ${all_ifaces}  
  do  
  evaluate_table  
  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}'")  
   
  done  
 }  
   
 check_network_settings_old()  
 {  
  # sanity checks  
  [[ ${ALX_IFACE} = NULL ]] && return 1  
  [[ ${ALX_HOSTNAME} = NULL ]] && return 1  
  [[ ${ALX_NETWORKING} = NULL ]] && return 1  
   
  # if we get here, everything is ok  
  return 0  
 }  
   
 config_networking_old()  
 {  
  local iface  
   
  # first of all get the vars  
  get_network_settings  
  if ! check_network_settings  
  then  
  echo -e "${COLYELLOW}Could not retrieve network settings, doing nothing ...${COLDEFAULT}"  
  return 1  
  fi  
   
  # get the right nic  
  if [[ -z ${ALX_IFACE} ]] || [[ ${ALX_IFACE} = NULL ]]  
  then  
  # default is 'eth0'  
  iface="eth0"  
  else  
  iface="${ALX_IFACE}"  
  fi  
   
  # remove all old nics and modules configs  
  find /etc/conf.d -type f -name 'net.*' | xargs rm  
   
  # update confd-networking default iface  
  [ ! -d ${SETTINGSPATH} ] && install -d ${SETTINGSPATH}  
  echo "${iface}" > ${SETTINGSPATH}/confd-networking  
   
  # hostname && hosts  
  echo "${ALX_HOSTNAME}" > /etc/hostname  
  echo -e "127.0.0.1\tlocalhost.${ALX_DOMAIN}\tlocalhost\t${ALX_HOSTNAME}" > /etc/hosts  
   
  # network devices  
   
  # always on boot  
  echo 'ONBOOT="yes"' > /etc/conf.d/net.${iface}  
  echo "NETWORKING=\"${ALX_NETWORKING}\"" >> /etc/conf.d/net.${iface}  
   
  case ${ALX_NETWORKING} in  
  dhcp|DHCP)  
  echo 'DHCP_PROG="/sbin/udhcpc"' >> /etc/conf.d/net.${iface}  
  # timeout after 10 seconds and quit after retrieving a lease  
  echo 'DHCP_START="-t 10 -q"' >> /etc/conf.d/net.${iface}  
  ;;  
   
  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.${iface}  
  echo "NETMASK=\"${ALX_NETMASK}\"" >> /etc/conf.d/net.${iface}  
  echo "BROADCAST=\"${ALX_BROADCAST}\"" >> /etc/conf.d/net.${iface}  
  ;;  
  esac  
   
  # gateway or gateway overrides  
  if [[ ${ALX_GATEWAY} != NULL ]]  
  then  
  echo "GATEWAY=\"${ALX_GATEWAY}\"" >> /etc/conf.d/net.${iface}  
  echo "GATEWAY_IF=\"${iface}\"" >> /etc/conf.d/net.${iface}  
  fi  
   
  # force mac address override  
  if [[ ${ALX_FORCEMACTO} != NULL ]]  
  then  
  echo "FORCE_MAC_TO=\"${ALX_FORCEMACTO}\"" >> /etc/conf.d/net.${iface}  
  fi  
   
  # nameserver or nameserver overrides  
  if [[ ${ALX_DNS} != NULL ]]  
  then  
  echo "nameserver ${ALX_DNS}" > /etc/resolv.conf  
  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  
  do  
  # get the value of $var  
  eval value=\$$(echo ${var})  
   
  # write it only if not empty  
  if [[ -n ${value} ]] && [[ ${value} != NULL ]]  
  then  
  # remove ALX_ from var  
  echo "${var/ALX_/}=\"${value}\"" >> /etc/conf.d/net.${iface}  
  fi  
   
  # clear value  
  unset value  
  done  
   
  # setup wpa-driver (only zydas atm)  
  [[ ${ALX_MODULE} = zd1211 ]] && \  
  echo "WIRELESS_WPA_DRIVER=zydas" >> /etc/conf.d/net.${iface}  
   
  # 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  
 }  
   
4  # needs exported iface variable!  # needs exported iface variable!
5  add_iface_cfg()  add_iface_cfg()
6  {  {

Legend:
Removed from v.454  
changed lines
  Added in v.455