Magellan Linux

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

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

revision 345 by niro, Sun Aug 28 19:28:58 2005 UTC revision 346 by niro, Sun Oct 9 21:34:47 2005 UTC
# Line 1  Line 1 
1  # $Header: /home/cvsd/alx-cvs/alx-src/alxconfig-ng/functions/config_network.sh,v 1.10 2005-08-28 19:28:58 niro Exp $  # $Header: /home/cvsd/alx-cvs/alx-src/alxconfig-ng/functions/config_network.sh,v 1.11 2005-10-09 21:34:47 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 hostname,
12   "select hostname,   module,
13   module,   domain,
14   domain,   networking,
15   networking,   ip,
16   ip,   netmask,
17   netmask,   dns,
18   dns,   gateway,
19   gateway,   broadcast,
20   broadcast   iface
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 38  get_network_settings() Line 38  get_network_settings()
38   export ALX_DNS="${DB_NETWORK[6]:=NULL}"   export ALX_DNS="${DB_NETWORK[6]:=NULL}"
39   export ALX_GATEWAY="${DB_NETWORK[7]:=NULL}"   export ALX_GATEWAY="${DB_NETWORK[7]:=NULL}"
40   export ALX_BROADCAST="${DB_NETWORK[8]:=NULL}"   export ALX_BROADCAST="${DB_NETWORK[8]:=NULL}"
41     export ALX_IFACE="${DB_NETWORK[9]:=NULL}"
42    
43   # the new mac address hack   # the new mac address hack
44   export ALX_FORCEMACTO=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   export ALX_FORCEMACTO=$(mysqldo "select forcemacto from cfg_network where serial='${ALX_SERIAL}'")
45   "select forcemacto from cfg_network where serial='${ALX_SERIAL}'")  
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     echo "${iface}" > ${SETTINGSPATH}/confd-networking
91    
92   # hostname && hosts   # hostname && hosts
93   echo "${ALX_HOSTNAME}" > /etc/hostname   echo "${ALX_HOSTNAME}" > /etc/hostname
# Line 67  config_networking() Line 96  config_networking()
96   # network devices   # network devices
97    
98   # always on boot   # always on boot
99   echo 'ONBOOT="yes"' > /etc/conf.d/net.eth0   echo 'ONBOOT="yes"' > /etc/conf.d/net.${iface}
100   echo "NETWORKING=\"${ALX_NETWORKING}\"" >> /etc/conf.d/net.eth0   echo "NETWORKING=\"${ALX_NETWORKING}\"" >> /etc/conf.d/net.${iface}
101    
102   case ${ALX_NETWORKING} in   case ${ALX_NETWORKING} in
103   dhcp|DHCP)   dhcp|DHCP)
104   echo 'DHCP_PROG="/sbin/dhcpcd"' >> /etc/conf.d/net.eth0   echo 'DHCP_PROG="/sbin/dhcpcd"' >> /etc/conf.d/net.${iface}
105   # -k kills the dhcp-cache at system shutdown   # -k kills the dhcp-cache at system shutdown
106   # -z will not   # -z will not
107   echo 'DHCP_STOP="-z"' >> /etc/conf.d/net.eth0   echo 'DHCP_STOP="-z"' >> /etc/conf.d/net.${iface}
108   #timeout after 10 seconds   #timeout after 10 seconds
109   echo 'DHCP_START="-t 10"' >> /etc/conf.d/net.eth0   echo 'DHCP_START="-t 10"' >> /etc/conf.d/net.${iface}
110   ;;   ;;
111    
112   static|STATIC)   static|STATIC)
113   # add hostname with valid ip to hosts   # add hostname with valid ip to hosts
114   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
115   echo "IP=\"${ALX_IP}\"" >> /etc/conf.d/net.eth0   echo "IP=\"${ALX_IP}\"" >> /etc/conf.d/net.${iface}
116   echo "NETMASK=\"${ALX_NETMASK}\"" >> /etc/conf.d/net.eth0   echo "NETMASK=\"${ALX_NETMASK}\"" >> /etc/conf.d/net.${iface}
117   echo "BROADCAST=\"${ALX_BROADCAST}\"" >> /etc/conf.d/net.eth0   echo "BROADCAST=\"${ALX_BROADCAST}\"" >> /etc/conf.d/net.${iface}
118   ;;   ;;
119   esac   esac
120    
121   # gateway or gateway overrides   # gateway or gateway overrides
122   if [[ ${ALX_GATEWAY} != NULL ]]   if [[ ${ALX_GATEWAY} != NULL ]]
123   then   then
124   echo "GATEWAY=\"${ALX_GATEWAY}\"" >> /etc/conf.d/net.eth0   echo "GATEWAY=\"${ALX_GATEWAY}\"" >> /etc/conf.d/net.${iface}
125   echo 'GATEWAY_IF="eth0"' >> /etc/conf.d/net.eth0   echo "GATEWAY_IF=\"${iface}\"" >> /etc/conf.d/net.${iface}
126   fi   fi
127    
128   # force mac address override   # force mac address override
129   if [[ ${ALX_FORCEMACTO} != NULL ]]   if [[ ${ALX_FORCEMACTO} != NULL ]]
130   then   then
131   echo "FORCE_MAC_TO=\"${ALX_FORCEMACTO}\"" >> /etc/conf.d/net.eth0   echo "FORCE_MAC_TO=\"${ALX_FORCEMACTO}\"" >> /etc/conf.d/net.${iface}
132   fi   fi
133    
134   # nameserver or nameserver overrides   # nameserver or nameserver overrides
# Line 116  config_networking() Line 145  config_networking()
145   cat ${ALX_SKELETONS}/samba/${smbconf} > /etc/samba/smb.conf   cat ${ALX_SKELETONS}/samba/${smbconf} > /etc/samba/smb.conf
146   sed -i -e "s:\(workgroup = \).*:\1${ALX_DOMAIN}:" /etc/samba/smb.conf   sed -i -e "s:\(workgroup = \).*:\1${ALX_DOMAIN}:" /etc/samba/smb.conf
147    
148     # wireless extensions
149     local value
150     local var
151     for var in ALX_WIRELESS_BITRATE \
152     ALX_WIRELESS_CHANNEL \
153     ALX_WIRELESS_ESSID \
154     ALX_WIRELESS_FREQUENCY \
155     ALX_WIRELESS_MODE \
156     ALX_WIRELESS_NICK \
157     ALX_WIRELESS_AUTH_MODE \
158     ALX_WIRELESS_KEY_LENGTH \
159     ALX_WIRELESS_KEY \
160     ALX_WIRELESS_KEY_ASCII
161     do
162     # get the value of $var
163     eval value=\$$(echo ${var})
164    
165     # write it only if not empty
166     if [[ -n ${value} ]] && [[ ${value} != NULL ]]
167     then
168     # remove ALX_ from var
169     echo "${var/ALX_/}=\"${value}\"" >> /etc/conf.d/net.${iface}
170     fi
171    
172     # clear value
173     unset value
174     done
175    
176   # unset all vars   # unset all vars
177   unset ALX_HOSTNAME   unset ALX_HOSTNAME
178   unset ALX_MODULE   unset ALX_MODULE
# Line 126  config_networking() Line 183  config_networking()
183   unset ALX_DNS   unset ALX_DNS
184   unset ALX_GATEWAY   unset ALX_GATEWAY
185   unset ALX_BROADCAST   unset ALX_BROADCAST
186     unset ALX_FORCEMACTO
187     unset ALX_IFACE
188     unset ALX_WIRELESS_BITRATE
189     unset ALX_WIRELESS_CHANNEL
190     unset ALX_WIRELESS_ESSID
191     unset ALX_WIRELESS_FREQUENCY
192     unset ALX_WIRELESS_MODE
193     unset ALX_WIRELESS_NICK
194     unset ALX_WIRELESS_AUTH_MODE
195     unset ALX_WIRELESS_KEY_LENGTH
196     unset ALX_WIRELESS_KEY
197     unset ALX_WIRELESS_KEY_ASCII
198  }  }
199    

Legend:
Removed from v.345  
changed lines
  Added in v.346