Magellan Linux

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

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

alx-src/trunk/alxconfig-ng/functions/config_network.sh revision 239 by niro, Tue Apr 12 20:46:52 2005 UTC alx-src/branches/alxconf_20060908/alxconfig-ng/functions/config_network.sh revision 543 by niro, Wed Feb 4 19:51:39 2009 UTC
# Line 1  Line 1 
1  # $Header: /home/cvsd/alx-cvs/alx-src/alxconfig-ng/functions/config_network.sh,v 1.4 2005-04-12 20:45:55 niro Exp $  # $Header: /home/cvsd/alx-cvs/alx-src/alxconfig-ng/functions/config_network.sh,v 1.14 2005-10-26 11:58:07 niro Exp $
2  # configures networkin on the host via mysql db settings  # configures networkin on the host via mysql db settings
3    
4  get_network_settings()  get_network_settings()
5  {  {
6   local x i all DB_NETWORK   local x i all DB_NETWORK
7    
8   #all arrays:   # all arrays:
9   # ->  hostname modules domain networking ip netmask dns gateway broadcast   # ->  hostname modules domain networking ip netmask dns gateway broadcast
10    
11   all=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   all=$(mysqldo "select iface,
12   "select hostname,   hostname,
13   module,   module,
14   domain,   domain,
15   networking,   networking,
16   ip,   ip,
17   netmask,   netmask,
18   dns,   dns,
19   gateway,   gateway,
20   broadcast   broadcast
21   from cfg_network where serial='${ALX_SERIAL}'")   from cfg_network where serial='${ALX_SERIAL}'")
22    
23   #split'em up and put 'em in an array   # split'em up and put 'em in an array
24   declare -i i=0   declare -i i=0
25   for x in ${all}   for x in ${all}
26   do   do
# Line 28  get_network_settings() Line 28  get_network_settings()
28   ((i++))   ((i++))
29   done   done
30    
31   # and now put them in usable var names and export them systemwide   # and now put in usable var names and export them systemwide
32   export ALX_HOSTNAME="${DB_NETWORK[0]:=NULL}"   export ALX_IFACE="${DB_NETWORK[0]:=NULL}"
33   export ALX_MODULE="${DB_NETWORK[1]:=NULL}"   export ALX_HOSTNAME="${DB_NETWORK[1]:=NULL}"
34   export ALX_DOMAIN="${DB_NETWORK[2]:=NULL}"   export ALX_MODULE="${DB_NETWORK[2]:=NULL}"
35   export ALX_NETWORKING="${DB_NETWORK[3]:=NULL}"   export ALX_DOMAIN="${DB_NETWORK[3]:=NULL}"
36   export ALX_IP="${DB_NETWORK[4]:=NULL}"   export ALX_NETWORKING="${DB_NETWORK[4]:=NULL}"
37   export ALX_NETMASK="${DB_NETWORK[5]:=NULL}"   export ALX_IP="${DB_NETWORK[5]:=NULL}"
38   export ALX_DNS="${DB_NETWORK[6]:=NULL}"   export ALX_NETMASK="${DB_NETWORK[6]:=NULL}"
39   export ALX_GATEWAY="${DB_NETWORK[7]:=NULL}"   export ALX_DNS="${DB_NETWORK[7]:=NULL}"
40   export ALX_BROADCAST="${DB_NETWORK[8]:=NULL}"   export ALX_GATEWAY="${DB_NETWORK[8]:=NULL}"
41     export ALX_BROADCAST="${DB_NETWORK[9]:=NULL}"
42    
43     # the new mac address hack
44     export ALX_FORCEMACTO=$(mysqldo "select forcemacto from cfg_network where serial='${ALX_SERIAL}'")
45    
46     # wireless extensions
47     export ALX_WIRELESS_BITRATE=$(mysqldo "select wireless_bitrate from cfg_network where serial='${ALX_SERIAL}'")
48     export ALX_WIRELESS_CHANNEL=$(mysqldo "select wireless_channel from cfg_network where serial='${ALX_SERIAL}'")
49     export ALX_WIRELESS_ESSID=$(mysqldo "select wireless_essid from cfg_network where serial='${ALX_SERIAL}'")
50     export ALX_WIRELESS_FREQUENCY=$(mysqldo "select wireless_frequency from cfg_network where serial='${ALX_SERIAL}'")
51     export ALX_WIRELESS_MODE=$(mysqldo "select wireless_mode from cfg_network where serial='${ALX_SERIAL}'")
52     export ALX_WIRELESS_NICK=$(mysqldo "select wireless_nick from cfg_network where serial='${ALX_SERIAL}'")
53     export ALX_WIRELESS_AUTH_MODE=$(mysqldo "select wireless_auth_mode from cfg_network where serial='${ALX_SERIAL}'")
54     export ALX_WIRELESS_KEY_LENGTH=$(mysqldo "select wireless_key_length from cfg_network where serial='${ALX_SERIAL}'")
55     export ALX_WIRELESS_KEY=$(mysqldo "select wireless_key from cfg_network where serial='${ALX_SERIAL}'")
56     export ALX_WIRELESS_KEY_ASCII=$(mysqldo "select wireless_key_ascii from cfg_network where serial='${ALX_SERIAL}'")
57  }  }
58    
59  config_networking()  config_networking()
60  {  {
61   #first of all get the vars   local iface
62    
63     # first of all get the vars
64   get_network_settings   get_network_settings
65    
66   # debug   # get the right nic
67   echo "0: ${ALX_HOSTNAME}"   if [[ -z ${ALX_IFACE} ]] || [[ ${ALX_IFACE} = NULL ]]
68   echo "1: ${ALX_MODULE}"   then
69   echo "2: ${ALX_DOMAIN}"   # default is 'eth0'
70   echo "3: ${ALX_NETWORKING}"   iface="eth0"
71   echo "4: ${ALX_IP}"   else
72   echo "5: ${ALX_NETMASK}"   iface="${ALX_IFACE}"
73   echo "6: ${ALX_DNS}"   fi
74   echo "7: ${ALX_GATEWAY}"  
75   echo "8: ${ALX_BROADCAST}"   # remove all old nics and modules configs
76     find /etc/conf.d -type f -name 'net.*' | xargs rm
77     find /etc/modules.d -type f -name 'net.*' | xargs rm
78    
79     # update the preliminary network
80     # set an device alias for modprobe.conf
81     [ ! -d /etc/modules.d ] && install -d /etc/modules.d
82     # update only if not the same (to speed up bootprocess - no depmod)
83     if [ ! -f /etc/modules.d/net.${iface} ] ||
84     [[ ${iface} != $(cat /etc/modules.d/net.${iface} | cut -d' ' -f2) ]]
85     then
86     echo "alias ${iface} ${ALX_MODULE}" > /etc/modules.d/net.${iface}
87     fi
88    
89     # update confd-networking default iface
90     [ ! -d ${SETTINGSPATH} ] && install -d ${SETTINGSPATH}
91     echo "${iface}" > ${SETTINGSPATH}/confd-networking
92    
93   # hostname && hosts   # hostname && hosts
94   echo "${ALX_HOSTNAME}" > /etc/hostname   echo "${ALX_HOSTNAME}" > /etc/hostname
95   echo -e "127.0.0.1\tlocalhost\t${ALX_HOSTNAME}.${ALX_DOMAIN}\t${ALX_HOSTNAME}" > /etc/hosts   echo -e "127.0.0.1\tlocalhost.${ALX_DOMAIN}\tlocalhost\t${ALX_HOSTNAME}" > /etc/hosts
96    
97   # network devices   # network devices
98    
99   # always on boot   # always on boot
100   echo 'ONBOOT="yes"' > /etc/conf.d/net.eth0   echo 'ONBOOT="yes"' > /etc/conf.d/net.${iface}
101   echo "NETWORKING=\"${ALX_NETWORKING}\"" >> /etc/conf.d/net.eth0   echo "NETWORKING=\"${ALX_NETWORKING}\"" >> /etc/conf.d/net.${iface}
102    
103   case ${ALX_NETWORKING} in   case ${ALX_NETWORKING} in
104   dhcp|DHCP)   dhcp|DHCP)
105   echo 'DHCP_PROG="/sbin/dhcpcd"' >> /etc/conf.d/net.eth0   echo 'DHCP_PROG="/sbin/dhcpcd"' >> /etc/conf.d/net.${iface}
106   # -k kills the dhcp-cache at system shutdown   # -k kills the dhcp-cache at system shutdown
107   # -z will not   # -z will not
108   echo 'DHCP_STOP="-z"' >> /etc/conf.d/net.eth0   echo 'DHCP_STOP="-z"' >> /etc/conf.d/net.${iface}
109   #timeout after 10 seconds   #timeout after 10 seconds
110   echo 'DHCP_START="-t 10"' >> /etc/conf.d/net.eth0   echo 'DHCP_START="-t 10"' >> /etc/conf.d/net.${iface}
111   ;;   ;;
112    
113   static|STATIC)   static|STATIC)
114   # add hostname with valid ip to hosts   # add hostname with valid ip to hosts
115   echo -e "${ALX_IP}\t${ALX_HOSTNAME}.${ALX_DOMAIN}\t${ALX_HOSTNAME}" >> /etc/hosts   echo -e "${ALX_IP}\t${ALX_HOSTNAME}.${ALX_DOMAIN}\t${ALX_HOSTNAME}" >> /etc/hosts
116   echo "IP=\"${ALX_IP}\"" >> /etc/conf.d/net.eth0   echo "IP=\"${ALX_IP}\"" >> /etc/conf.d/net.${iface}
117   echo "NETMASK=\"${ALX_NETMASK}\"" >> /etc/conf.d/net.eth0   echo "NETMASK=\"${ALX_NETMASK}\"" >> /etc/conf.d/net.${iface}
118   echo "BROADCAST=\"${ALX_BROADCAST}\"" >> /etc/conf.d/net.eth0   echo "BROADCAST=\"${ALX_BROADCAST}\"" >> /etc/conf.d/net.${iface}
119   ;;   ;;
120   esac   esac
121    
122   # gateway or gateway overrides   # gateway or gateway overrides
123   if [[ ${ALX_GATEWAY} != NULL ]]   if [[ ${ALX_GATEWAY} != NULL ]]
124   then   then
125   echo "GATEWAY=\"${ALX_GATEWAY}\"" >> /etc/conf.d/net.eth0   echo "GATEWAY=\"${ALX_GATEWAY}\"" >> /etc/conf.d/net.${iface}
126   echo 'GATEWAY_IF="eth0"' >> /etc/conf.d/net.eth0   echo "GATEWAY_IF=\"${iface}\"" >> /etc/conf.d/net.${iface}
127     fi
128    
129     # force mac address override
130     if [[ ${ALX_FORCEMACTO} != NULL ]]
131     then
132     echo "FORCE_MAC_TO=\"${ALX_FORCEMACTO}\"" >> /etc/conf.d/net.${iface}
133   fi   fi
134    
135   # nameserver or nameserver overrides   # nameserver or nameserver overrides
# Line 98  config_networking() Line 138  config_networking()
138   echo "nameserver ${ALX_DNS}" > /etc/resolv.conf   echo "nameserver ${ALX_DNS}" > /etc/resolv.conf
139   fi   fi
140    
141     # setup smb.conf (little sed magic:)
142     # first get smb version !
143     local smbconf
144     [[ $(smbd --version | cut -d' ' -f2) > 2.999 ]] && smbconf=smb3.conf || smbconf=smb.conf
145    
146     cat ${ALX_SKELETONS}/samba/${smbconf} > /etc/samba/smb.conf
147     sed -i -e "s:\(workgroup = \).*:\1${ALX_DOMAIN}:" /etc/samba/smb.conf
148    
149     # wireless extensions
150     local value
151     local var
152     for var in ALX_WIRELESS_BITRATE \
153     ALX_WIRELESS_CHANNEL \
154     ALX_WIRELESS_ESSID \
155     ALX_WIRELESS_FREQUENCY \
156     ALX_WIRELESS_MODE \
157     ALX_WIRELESS_NICK \
158     ALX_WIRELESS_AUTH_MODE \
159     ALX_WIRELESS_KEY_LENGTH \
160     ALX_WIRELESS_KEY \
161     ALX_WIRELESS_KEY_ASCII
162     do
163     # get the value of $var
164     eval value=\$$(echo ${var})
165    
166     # write it only if not empty
167     if [[ -n ${value} ]] && [[ ${value} != NULL ]]
168     then
169     # remove ALX_ from var
170     echo "${var/ALX_/}=\"${value}\"" >> /etc/conf.d/net.${iface}
171     fi
172    
173     # clear value
174     unset value
175     done
176    
177     # setup wpa-driver (only zydas atm)
178     [[ ${ALX_MODULE} = zd1211 ]] && \
179     echo "WIRELESS_WPA_DRIVER=zydas" >> /etc/conf.d/net.${iface}
180    
181   # unset all vars   # unset all vars
182   unset ALX_HOSTNAME   unset ALX_HOSTNAME
183   unset ALX_MODULE   unset ALX_MODULE
# Line 108  config_networking() Line 188  config_networking()
188   unset ALX_DNS   unset ALX_DNS
189   unset ALX_GATEWAY   unset ALX_GATEWAY
190   unset ALX_BROADCAST   unset ALX_BROADCAST
191     unset ALX_FORCEMACTO
192     unset ALX_IFACE
193     unset ALX_WIRELESS_BITRATE
194     unset ALX_WIRELESS_CHANNEL
195     unset ALX_WIRELESS_ESSID
196     unset ALX_WIRELESS_FREQUENCY
197     unset ALX_WIRELESS_MODE
198     unset ALX_WIRELESS_NICK
199     unset ALX_WIRELESS_AUTH_MODE
200     unset ALX_WIRELESS_KEY_LENGTH
201     unset ALX_WIRELESS_KEY
202     unset ALX_WIRELESS_KEY_ASCII
203  }  }
204    

Legend:
Removed from v.239  
changed lines
  Added in v.543