Magellan Linux

Diff of /alx-src/branches/alxconf-060/functions/config_network.sh

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

revision 2144 by niro, Mon May 16 11:06:46 2011 UTC revision 2145 by niro, Tue May 17 11:44:27 2011 UTC
# Line 1  Line 1 
1  # $Id$  # $Id$
2  # configures networking on the host via mysql db settings  # configures networking on the host via mysql db settings
3    
 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}'")  
 }  
   
4  config_networking()  config_networking()
5  {  {
6   local iface   local iface
7   local CONFIG   local CONFIG
8    
9   # first of all get the vars   # first of all get the vars
10   get_network_settings   evaluate_table cfg_network
11    
12   # get the right nic   # get the right nic
13   if [[ -z ${ALX_IFACE} ]] || [[ ${ALX_IFACE} = NULL ]]   if [[ -z ${cfg_network_iface} ]] || [[ ${cfg_network_iface} = NULL ]]
14   then   then
15   # default is 'eth0'   # default is 'eth0'
16   iface="eth0"   iface="eth0"
17   else   else
18   iface="${ALX_IFACE}"   iface="${cfg_network_iface}"
19   fi   fi
20    
21   # remove all old nics and modules configs   # remove all old nics and modules configs
# Line 86  config_networking() Line 31  config_networking()
31   then   then
32   CONFIG=/etc/modprobe.d/net.${iface}.conf   CONFIG=/etc/modprobe.d/net.${iface}.conf
33   clearconfig   clearconfig
34   addconfig "alias ${iface} ${ALX_MODULE}"   addconfig "alias ${iface} ${cfg_network_module}"
35   fi   fi
36    
37   # update confd-networking default iface   # update confd-networking default iface
# Line 98  config_networking() Line 43  config_networking()
43   # hostname && hosts   # hostname && hosts
44   CONFIG=/etc/hostname   CONFIG=/etc/hostname
45   clearconfig   clearconfig
46   addconfig "${ALX_HOSTNAME}"   addconfig "${cfg_network_hostname}"
47   CONFIG=/etc/hosts   CONFIG=/etc/hosts
48   clearconfig   clearconfig
49   addconfig -e "127.0.0.1\tlocalhost.${ALX_DOMAIN}\tlocalhost\t${ALX_HOSTNAME}"   addconfig -e "127.0.0.1\tlocalhost.${cfg_network_domain}\tlocalhost\t${cfg_network_hostname}"
50   case ${ALX_NETWORKING} in   case ${cfg_network_networking} in
51   static|STATIC)   static|STATIC)
52   # add hostname with valid ip to hosts   # add hostname with valid ip to hosts
53   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}"
54   ;;   ;;
55   esac   esac
56    
# Line 116  config_networking() Line 61  config_networking()
61   clearconfig   clearconfig
62    
63   addconfig 'ONBOOT="yes"'   addconfig 'ONBOOT="yes"'
64   addconfig "NETWORKING=\"${ALX_NETWORKING}\""   addconfig "NETWORKING=\"${cfg_network_networking}\""
65   case ${ALX_NETWORKING} in   case ${cfg_network_networking} in
66   dhcp|DHCP)   dhcp|DHCP)
67   addconfig 'DHCP_PROG="/sbin/udhcpc"'   addconfig 'DHCP_PROG="/sbin/udhcpc"'
68   addconfig 'DHCP_STOP=""'   addconfig 'DHCP_STOP=""'
# Line 126  config_networking() Line 71  config_networking()
71   ;;   ;;
72    
73   static|STATIC)   static|STATIC)
74   addconfig "IP=\"${ALX_IP}\""   addconfig "IP=\"${cfg_network_ip}\""
75   addconfig "NETMASK=\"${ALX_NETMASK}\""   addconfig "NETMASK=\"${cfg_network_netmask}\""
76   addconfig "BROADCAST=\"${ALX_BROADCAST}\""   addconfig "BROADCAST=\"${cfg_network_broadcast}\""
77   ;;   ;;
78   esac   esac
79    
80   # force mac address override   # force mac address override
81   if [[ ${ALX_FORCEMACTO} != NULL ]]   if [[ ${cfg_network_forcemacto} != NULL ]]
82   then   then
83   addconfig "FORCE_MAC_TO=\"${ALX_FORCEMACTO}\""   addconfig "FORCE_MAC_TO=\"${cfg_network_forcemacto}\""
84   fi   fi
85    
86   # wireless extensions   # wireless extensions
87   local value   local value
88   local var   local var
89   for var in ALX_WIRELESS_BITRATE \   for var in bitrate \
90   ALX_WIRELESS_CHANNEL \   channel \
91   ALX_WIRELESS_ESSID \   essid \
92   ALX_WIRELESS_FREQUENCY \   frequency \
93   ALX_WIRELESS_MODE \   mode \
94   ALX_WIRELESS_NICK \   nick \
95   ALX_WIRELESS_AUTH_MODE \   auth_mode \
96   ALX_WIRELESS_KEY_LENGTH \   key_length \
97   ALX_WIRELESS_KEY \   key \
98   ALX_WIRELESS_KEY_ASCII   key_ascii
99   do   do
100   # get the value of $var   # get the value of $var
101   eval value=\$$(echo ${var})   eval value="\${cfg_network_wireless_$(echo ${var})}"
102    
103   # write it only if not empty   # write it only if not empty
104   if [[ -n ${value} ]] && [[ ${value} != NULL ]]   if [[ -n ${value} ]] && [[ ${value} != NULL ]]
105   then   then
106   # remove ALX_ from var   # add WIRELESS and use uppercases
107   addconfig "${var/ALX_/}=\"${value}\""   addconfig "WIRELESS_$(echo ${var} | tr [[:lower:] [[:upper:]])=\"${value}\""
108   fi   fi
109    
110   # clear value   # clear value
# Line 168  config_networking() Line 113  config_networking()
113    
114   # FIXME !!!   # FIXME !!!
115   # setup wpa-driver (only zydas atm)   # setup wpa-driver (only zydas atm)
116   if [[ ${ALX_MODULE} = zd1211 ]]   if [[ ${cfg_network_module} = zd1211 ]]
117   then   then
118   addconfig "WIRELESS_WPA_DRIVER=zydas"   addconfig "WIRELESS_WPA_DRIVER=zydas"
119   fi   fi
# Line 176  config_networking() Line 121  config_networking()
121   CONFIG=/etc/conf.d/net.routes   CONFIG=/etc/conf.d/net.routes
122   clearconfig   clearconfig
123   # gateway or gateway overrides   # gateway or gateway overrides
124   if [[ ${ALX_GATEWAY} != NULL ]]   if [[ ${cfg_network_gateway} != NULL ]]
125   then   then
126   addconfig "default gw ${ALX_GATEWAY}"   addconfig "default gw ${cfg_network_gateway}"
127   fi   fi
128    
129   CONFIG=/etc/resolv.conf   CONFIG=/etc/resolv.conf
130   clearconfig   clearconfig
131   # nameserver or nameserver overrides   # nameserver or nameserver overrides
132   if [[ ${ALX_DNS} != NULL ]]   if [[ ${cfg_network_dns} != NULL ]]
133   then   then
134   addconfig "nameserver ${ALX_DNS}"   addconfig "nameserver ${cfg_network_dns}"
135   fi   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  
136  }  }

Legend:
Removed from v.2144  
changed lines
  Added in v.2145