Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2032 - (hide annotations) (download)
Mon Aug 13 11:59:21 2012 UTC (11 years, 9 months ago) by niro
File size: 4483 byte(s)
-restart networking in MROOT environment
1 niro 1248 # $Id$
2    
3     provide basic-networking
4 niro 1260 require basic-system
5 niro 1248
6     help_network_hostname()
7     {
8 niro 1348 mecho "get network.hostname"
9     mecho " displays the current hostname"
10     mecho
11 niro 1248 mecho "set network.hostname [hostname]"
12 niro 1348 mecho " Sets the hostname of the system"
13 niro 1248 mecho " mcore - the local hostname"
14     }
15    
16 niro 1348 get_network_hostname()
17     {
18 niro 2026 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 niro 1348 }
29    
30 niro 1248 # set_network_hostname $value
31     set_network_hostname()
32     {
33     local value="$1"
34 niro 1260 local CONFIG
35 niro 1351 local socket
36     local cookie
37     local authtype
38    
39 niro 1248 [[ -z ${value} ]] && help_network_hostname && return 1
40    
41 niro 1260 CONFIG="/etc/hostname"
42     clearconfig
43     addconfig "${value}"
44 niro 1248 hostname "${value}"
45 niro 1351
46 niro 1605 # 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 niro 1351 # 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 niro 1248 }
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 niro 1260 local CONFIG
86 niro 2032 local dhcp_prog
87 niro 1248
88     [[ -z ${iface} ]] && help_network_iface && return 1
89     [[ -z ${networking} ]] && help_network_iface && return 1
90    
91 niro 1260 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 niro 1248
99 niro 1260 CONFIG="/etc/conf.d/net.${iface}"
100     clearconfig
101     addconfig 'ONBOOT="yes"'
102    
103 niro 1248 case ${networking} in
104     static)
105 niro 1260 addconfig 'NETWORKING="static"'
106     addconfig "IP=\"${ip}\""
107     addconfig "NETMASK=\"${netmask}\""
108     addconfig "BROADCAST=\"${broadcast}\""
109     addconfig "NETWORK=\"${network}\""
110 niro 1248 ;;
111    
112     dhcp)
113 niro 1260 addconfig 'NETWORKING="dhcp"'
114 niro 1248 ;;
115     esac
116    
117 niro 2032 if [[ -z ${MROOT} ]] || [[ ${MROOT} = / ]]
118 niro 1248 then
119 niro 2032 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 niro 1248 else
126 niro 2032 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 niro 1248 fi
137     }
138    
139 niro 1348 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 niro 1646 rvecho "${gw}"
153 niro 1348 }
154    
155 niro 1284 set_network_gateway()
156 niro 1248 {
157 niro 1284 local value="$1"
158 niro 1260 local CONFIG
159     local i
160    
161 niro 1348 [[ -z ${value} ]] && help_network_gateway && return 1
162    
163 niro 1260 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 niro 1248 }
174    
175 niro 1348 help_network_nameserver()
176 niro 1248 {
177 niro 1348 mecho "get network.nameserver"
178     mecho " displays the current nameserver of the system"
179     mecho
180 niro 1351 mecho "set network.nameserver [ip1] [ip2] .. [ipN]"
181 niro 1348 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 niro 1646 rvecho "${i}"
193 niro 1348 done
194     }
195    
196     set_network_nameserver()
197     {
198 niro 1248 local values="$@"
199 niro 1260 local CONFIG
200     local i
201 niro 1248
202 niro 1348 [[ -z ${values} ]] && help_network_nameserver && return 1
203    
204 niro 1260 CONFIG="/etc/resolv.conf"
205     clearconfig
206     for i in ${values}
207 niro 1248 do
208 niro 1260 addconfig "nameserver ${i}"
209 niro 1248 done
210     }