Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 539 - (show annotations) (download) (as text)
Mon Jan 26 17:19:06 2009 UTC (15 years, 3 months ago) by niro
File MIME type: application/x-sh
File size: 3213 byte(s)
-fixed spelling
1 # $Id$
2 # configures networking on the host via mysql db settings
3
4 # needs exported iface variable!
5 add_iface_cfg()
6 {
7 echo "$@" >> /etc/conf.d/net.${iface}
8 }
9
10 config_networking()
11 {
12 local iface
13
14 # retrieve informations about hostname and co
15 evaluate_table_xml cfg_network
16
17 # configure hostname and domain settings:
18 echo "${cfg_network_hostname}" > /etc/hostname
19 echo -e "127.0.0.1\tlocalhost.${cfg_network_domain}\tlocalhost\t${cfg_network_hostname}" > /etc/hosts
20
21 # if ! check_network_settings
22 # then
23 # echo -e "${COLYELLOW}Could not retrieve network settings, doing nothing ...${COLDEFAULT}"
24 # return 1
25 # fi
26
27 # remove all old nics and modules configs
28 find /etc/conf.d -type f -name 'net.*' | xargs rm
29
30 # configure all available interfaces but activate only the default_iface!
31 iface_list=$(mysqldo "select iface from cfg_interfaces where serial='${ALX_SERIAL}'")
32
33 for iface in ${iface_list}
34 do
35 # initialize the config
36 :> /etc/conf.d/net.${iface}
37
38 # retrieve information from mysql
39 evaluate_table_xml cfg_interfaces "where serial='${ALX_SERIAL}' and iface='${iface}'"
40
41 if [[ ${iface} = ${cfg_network_default_iface} ]]
42 then
43 add_iface_cfg "ONBOOT=yes"
44 else
45 add_iface_cfg "ONBOOT=no"
46 fi
47
48 add_iface_cfg NETWORKING=${cfg_interfaces_networking}
49
50 case ${cfg_interfaces_networking} in
51 dhcp|DHCP)
52 add_iface_cfg "DHCP_PROG=/sbin/udhcpc"
53 # timeout after 10 seconds and quit after retrieving a lease
54 add_iface_cfg 'DHCP_START="-t 10 -q"'
55 ;;
56
57 static|STATIC)
58 # add hostname with valid ip to hosts
59 echo -e "${cfg_interfaces_ip}\t${cfg_interfaces_hostname}.${cfg_interfaces_domain}\t${cfg_interfaces_hostname}" >> /etc/hosts
60 add_iface_cfg "IP=${cfg_interfaces_ip}"
61 add_iface_cfg "NETMASK=${cfg_interfaces_netmask}"
62 add_iface_cfg "BROADCAST=${cfg_interfaces_broadcast}"
63 ;;
64 esac
65
66 # gateway or gateway overrides
67 if [[ ${cfg_interfaces_gateway} != NULL ]]
68 then
69 add_iface_cfg "GATEWAY=${cfg_interfaces_gateway}"
70 fi
71
72 # nameserver or nameserver overrides
73 if [[ ${cfg_interfaces_dns} != NULL ]]
74 then
75 add_iface_cfg "NAMESERVER="${cfg_interfaces_dns}""
76 fi
77
78 # force mac address override
79 if [[ ${cfg_interfaces_forcemacto} != NULL ]]
80 then
81 add_iface_cfg FORCE_MAC_TO=${cfg_interfaces_forcemacto}
82 fi
83
84 # wireless extensions
85 local value
86 local var
87 for var in cfg_interfaces_wireless_bitrate \
88 cfg_interfaces_wireless_channel \
89 cfg_interfaces_wireless_essid \
90 cfg_interfaces_wireless_frequency \
91 cfg_interfaces_wireless_mode \
92 cfg_interfaces_wireless_nick \
93 cfg_interfaces_wireless_auth_mode \
94 cfg_interfaces_wireless_key_length \
95 cfg_interfaces_wireless_key \
96 cfg_interfaces_wireless_key_ascii
97 do
98 # get the value of $var
99 eval value=\$$(echo ${var})
100
101 # write it only if not empty
102 if [[ -n ${value} ]] && [[ ${value} != NULL ]]
103 then
104 # remove cfg_interfaces_from var and convert to upcase
105 add_iface_cfg "$(echo ${var/cfg_network_/} | tr '[:lower:]' '[:upper:]')=${value}"
106 fi
107
108 # clear value
109 unset value
110 done
111
112 # setup wpa-driver (only zydas atm)
113 case ${cfg_interfaces_module} in
114 zd1211) add_iface_cfg "WIRELESS_WPA_DRIVER=zydas" ;;
115 esac
116 done
117 }