Magellan Linux

Contents of /mcore-src/trunk/mcore-tools/daemon/client/include/network.client.class

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1260 - (show annotations) (download)
Fri Feb 4 20:01:16 2011 UTC (13 years, 2 months ago) by niro
File size: 2338 byte(s)
- requires basic-system for restarting system services
- always use CONFIG=, clearconfig, addconfig paradigma
- better sanity checks in set_network_iface()

1 # $Id$
2
3 provide basic-networking
4 require basic-system
5
6 help_network_hostname()
7 {
8 mecho "set network.hostname [hostname]"
9 mecho " mcore - the local hostname"
10 }
11
12 # set_network_hostname $value
13 set_network_hostname()
14 {
15 local value="$1"
16 local CONFIG
17 [[ -z ${value} ]] && help_network_hostname && return 1
18
19 CONFIG="/etc/hostname"
20 clearconfig
21 addconfig "${value}"
22 hostname "${value}"
23 }
24
25 help_network_iface()
26 {
27 mecho "set network.iface [iface] [networking] [ip] [netmask] [broadcast] [network]"
28 mecho " iface - the interface name"
29 mecho " networking - may be 'static' or 'dhcp'"
30 mecho " ip, netmask, broadcast and network are optional and only required on static networking"
31 }
32
33 set_network_iface()
34 {
35 local iface="$1"
36 local networking="$2"
37 local ip="$3"
38 local netmask="$4"
39 local broadcast="$5"
40 local network="$6"
41 local CONFIG
42
43 [[ -z ${iface} ]] && help_network_iface && return 1
44 [[ -z ${networking} ]] && help_network_iface && return 1
45
46 if [[ ${networking} = static ]]
47 then
48 [[ -z ${ip} ]] && help_network_iface && return 1
49 [[ -z ${netmask} ]] && help_network_iface && return 1
50 [[ -z ${broadcast} ]] && help_network_iface && return 1
51 [[ -z ${network} ]] && help_network_iface && return 1
52 fi
53
54 CONFIG="/etc/conf.d/net.${iface}"
55 clearconfig
56 addconfig 'ONBOOT="yes"'
57
58 case ${networking} in
59 static)
60 addconfig 'NETWORKING="static"'
61 addconfig "IP=\"${ip}\""
62 addconfig "NETMASK=\"${netmask}\""
63 addconfig "BROADCAST=\"${broadcast}\""
64 addconfig "NETWORK=\"${network}\""
65 ;;
66
67 dhcp)
68 addconfig 'NETWORKING="dhcp"'
69 # addconfig 'DHCP_PROG="/sbin/udhcpc"'
70 # addconfig 'DHCP_START="-t3 -T3 -q -b"'
71 # addconfig 'DHCP_STOP=""'
72 ;;
73 esac
74
75 if [[ ! -z $(ip addr | grep "${iface}.*UP.*") ]]
76 then
77 set_system_service restart network "${iface}"
78 else
79 set_system_service start network "${iface}"
80 fi
81 }
82
83 set_network_default_gw()
84 {
85 local value
86 local CONFIG
87 local i
88
89 CONFIG="/etc/conf.d/net.routes"
90 clearconfig
91 addconfig "default gw ${value}"
92
93 # delete other default gw first
94 for i in $(ip route | grep default | sed 's:.*via\ \(.*\)\ dev.*:\1:')
95 do
96 route del default gw "${i}"
97 done
98 route add default gw "${value}"
99 }
100
101 set_network_dns()
102 {
103 local values="$@"
104 local CONFIG
105 local i
106
107 CONFIG="/etc/resolv.conf"
108 clearconfig
109 for i in ${values}
110 do
111 addconfig "nameserver ${i}"
112 done
113 }