Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2032 - (show annotations) (download)
Mon Aug 13 11:59:21 2012 UTC (11 years, 8 months ago) by niro
File size: 4483 byte(s)
-restart networking in MROOT environment
1 # $Id$
2
3 provide basic-networking
4 require basic-system
5
6 help_network_hostname()
7 {
8 mecho "get network.hostname"
9 mecho " displays the current hostname"
10 mecho
11 mecho "set network.hostname [hostname]"
12 mecho " Sets the hostname of the system"
13 mecho " mcore - the local hostname"
14 }
15
16 get_network_hostname()
17 {
18 local val
19
20 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
21 then
22 val=$(hostname)
23 else
24 val=$(< /etc/hostname)
25 fi
26
27 rvecho "${val}"
28 }
29
30 # set_network_hostname $value
31 set_network_hostname()
32 {
33 local value="$1"
34 local CONFIG
35 local socket
36 local cookie
37 local authtype
38
39 [[ -z ${value} ]] && help_network_hostname && return 1
40
41 CONFIG="/etc/hostname"
42 clearconfig
43 addconfig "${value}"
44 hostname "${value}"
45
46 # update hosts file
47 CONFIG="/etc/hosts"
48 clearconfig
49 addconfig "127.0.0.1 localhost ${value}"
50 # add ipv6 defaults
51 addconfig "::1 ip6-localhost ip6-loopback"
52 addconfig "fe00::0 ip6-localnet"
53 addconfig "ff00::0 ip6-mcastprefix"
54 addconfig "ff02::1 ip6-allnodes"
55 addconfig "ff02::2 ip6-allrouters"
56 addconfig "ff02::3 ip6-allhosts"
57
58 # check for running x11 and recreate the xauth cookie with the correct hostname
59 if [[ ! -z $(pidof X) ]]
60 then
61 socket="${value}/unix${MCORE_XORG_DISPLAY}"
62 cookie=$(x11runas "xauth list | sed 's:.*\ \(.*\):\1:'")
63 authtype="MIT-MAGIC-COOKIE-1"
64 # add the new hostname to the xauthority file
65 x11runas "xauth add ${socket} ${authtype} ${cookie}"
66 fi
67 }
68
69 help_network_iface()
70 {
71 mecho "set network.iface [iface] [networking] [ip] [netmask] [broadcast] [network]"
72 mecho " iface - the interface name"
73 mecho " networking - may be 'static' or 'dhcp'"
74 mecho " ip, netmask, broadcast and network are optional and only required on static networking"
75 }
76
77 set_network_iface()
78 {
79 local iface="$1"
80 local networking="$2"
81 local ip="$3"
82 local netmask="$4"
83 local broadcast="$5"
84 local network="$6"
85 local CONFIG
86 local dhcp_prog
87
88 [[ -z ${iface} ]] && help_network_iface && return 1
89 [[ -z ${networking} ]] && help_network_iface && return 1
90
91 if [[ ${networking} = static ]]
92 then
93 [[ -z ${ip} ]] && help_network_iface && return 1
94 [[ -z ${netmask} ]] && help_network_iface && return 1
95 [[ -z ${broadcast} ]] && help_network_iface && return 1
96 [[ -z ${network} ]] && help_network_iface && return 1
97 fi
98
99 CONFIG="/etc/conf.d/net.${iface}"
100 clearconfig
101 addconfig 'ONBOOT="yes"'
102
103 case ${networking} in
104 static)
105 addconfig 'NETWORKING="static"'
106 addconfig "IP=\"${ip}\""
107 addconfig "NETMASK=\"${netmask}\""
108 addconfig "BROADCAST=\"${broadcast}\""
109 addconfig "NETWORK=\"${network}\""
110 ;;
111
112 dhcp)
113 addconfig 'NETWORKING="dhcp"'
114 ;;
115 esac
116
117 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
118 then
119 if [[ ! -z $(ip addr | grep "${iface}.*UP.*") ]]
120 then
121 set_system_service restart network "${iface}"
122 else
123 set_system_service start network "${iface}"
124 fi
125 else
126 case ${networking} in
127 static)
128 ifconfig "${iface}" "${ip}" netmask "${netmask}" broadcast "${broadcast}"
129 ;;
130 dhcp)
131 source /etc/conf.d/network
132 [[ ! -z $(pidof ${dhcp_prog}) ]] && killall ${DEFAULT_DHCP_PROG}
133 ${DEFAULT_DHCP_PROG} ${DEFAULT_DHCP_START} "${iface}"
134 ;;
135 esac
136 fi
137 }
138
139 help_network_gateway()
140 {
141 mecho "get network.gateway"
142 mecho " displays the current network gateway"
143 mecho
144 mecho "set network.gateway [ip]"
145 mecho " sets the network gateway to [ip]"
146 }
147
148 get_network_gateway()
149 {
150 local gw
151 gw=$(ip route | grep default | sed 's:.*via[[:space:]]\(.*\)[[:space:]]dev.*:\1:')
152 rvecho "${gw}"
153 }
154
155 set_network_gateway()
156 {
157 local value="$1"
158 local CONFIG
159 local i
160
161 [[ -z ${value} ]] && help_network_gateway && return 1
162
163 CONFIG="/etc/conf.d/net.routes"
164 clearconfig
165 addconfig "default gw ${value}"
166
167 # delete other default gw first
168 for i in $(ip route | grep default | sed 's:.*via\ \(.*\)\ dev.*:\1:')
169 do
170 route del default gw "${i}"
171 done
172 route add default gw "${value}"
173 }
174
175 help_network_nameserver()
176 {
177 mecho "get network.nameserver"
178 mecho " displays the current nameserver of the system"
179 mecho
180 mecho "set network.nameserver [ip1] [ip2] .. [ipN]"
181 mecho " adds given ips as nameserver to the system"
182 }
183
184 get_network_nameserver()
185 {
186 local dns
187 local i
188
189 dns=$(grep nameserver /etc/resolv.conf | sed 's:.*[[:space:]]\(.*\):\1:g')
190 for i in ${dns}
191 do
192 rvecho "${i}"
193 done
194 }
195
196 set_network_nameserver()
197 {
198 local values="$@"
199 local CONFIG
200 local i
201
202 [[ -z ${values} ]] && help_network_nameserver && return 1
203
204 CONFIG="/etc/resolv.conf"
205 clearconfig
206 for i in ${values}
207 do
208 addconfig "nameserver ${i}"
209 done
210 }