Project

General

Profile

Download (14.7 KB) Statistics
| Branch: | Tag: | Revision:
1 c63e3594 Darren Embry
#!/usr/local/bin/php -q
2 5b237745 Scott Ullrich
<?php
3 1b8df11b Bill Marquette
/* $Id$ */
4 5b237745 Scott Ullrich
/*
5
	rc.initial.setlanip
6
	part of m0n0wall (http://m0n0.ch/wall)
7 bbc3533f Scott Ullrich
8 5b237745 Scott Ullrich
	Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>.
9
	All rights reserved.
10 bbc3533f Scott Ullrich
11 5b237745 Scott Ullrich
	Redistribution and use in source and binary forms, with or without
12
	modification, are permitted provided that the following conditions are met:
13 bbc3533f Scott Ullrich
14 5b237745 Scott Ullrich
	1. Redistributions of source code must retain the above copyright notice,
15
	   this list of conditions and the following disclaimer.
16 bbc3533f Scott Ullrich
17 5b237745 Scott Ullrich
	2. Redistributions in binary form must reproduce the above copyright
18
	   notice, this list of conditions and the following disclaimer in the
19
	   documentation and/or other materials provided with the distribution.
20 bbc3533f Scott Ullrich
21 5b237745 Scott Ullrich
	THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
22
	INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
23
	AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
24
	AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
25
	OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26
	SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27
	INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28
	CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29
	ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30
	POSSIBILITY OF SUCH DAMAGE.
31
*/
32
33 c63e3594 Darren Embry
34
35
$options = getopt("hn", array("dry-run", "help"));
36
37
if (isset($options["h"]) || isset($options["help"])) {
38
	echo "usage: /etc/rc.initial.setlanip [option ...]\n";
39
	echo "  -h, --help       show this message\n";
40
	echo "  -n, --dry-run    do not make any configuration changes\n";
41
	exit(0);
42
}
43
44
$dry_run = isset($options["n"]) || isset($options["dry-run"]);
45
if ($dry_run) {
46
	echo "DRY RUN MODE IS ON\n";
47
}
48
49
50
51 416e1530 Darren Embry
/* parse the configuration and include all functions used below */
52
require_once("config.inc");
53
require_once("functions.inc");
54
require_once("filter.inc");
55
require_once("shaper.inc");
56
require_once("rrd.inc");
57 bbc3533f Scott Ullrich
58 416e1530 Darren Embry
function console_get_interface_from_ppp($realif) {
59
	global $config;
60 aab5f04c Ermal
61 416e1530 Darren Embry
	if (is_array($config['ppps']['ppp']) && count($config['ppps']['ppp'])) {
62
		foreach ($config['ppps']['ppp'] as $pppid => $ppp) {
63
			if ($realif == $ppp['if']) {
64
				$ifaces = explode(",", $ppp['ports']);
65
				return $ifaces[0];
66 aab5f04c Ermal
			}
67
		}
68
	}
69
70 416e1530 Darren Embry
	return "";
71
}
72
73 c1361a9f Darren Embry
function prompt_for_enable_dhcp_server($version = 4) {
74 416e1530 Darren Embry
	global $config, $fp, $interface;
75
	if($interface == "wan") {
76
		if($config['interfaces']['lan']) 
77
			return "n";
78
	}
79
	/* only allow DHCP server to be enabled when static IP is
80
	   configured on this interface */
81 c1361a9f Darren Embry
	if ($version === 6) {
82
		$is_ipaddr = is_ipaddrv6($config['interfaces'][$interface]['ipaddrv6']);
83
	} else {
84
		$is_ipaddr = is_ipaddrv4($config['interfaces'][$interface]['ipaddr']);
85
	}
86
	if ($is_ipaddr) {
87
		$label_DHCP = ($version === 6) ? "DHCP6" : "DHCP";
88 416e1530 Darren Embry
		do {
89
			$good = false;
90
			$upperifname = strtoupper($interface);
91 005a7049 Darren Embry
			echo "\n" . sprintf(gettext("Do you want to enable the %s server on %s? [y|n]"),
92
			                    $label_DHCP, $upperifname) . "  ";
93 416e1530 Darren Embry
			$yn = strtolower(chop(fgets($fp)));
94
			if ($yn[0] == "y" or $yn[0] == "n")
95 e1454e42 Scott Ullrich
				$good = true;
96 416e1530 Darren Embry
		} while (!$good);
97 e1454e42 Scott Ullrich
	}
98 416e1530 Darren Embry
	return $yn;
99
}
100 e1454e42 Scott Ullrich
101 0098aa73 Darren Embry
function get_interface_config_description($iface) {
102
	global $config;
103
	$c = $config['interfaces'][$iface];
104
	if (!$c) { return null; }
105
	$if = $c['if'];
106
	$result = $if;
107
	$result2 = array();
108
	$ipaddr = $c['ipaddr'];
109
	$ipaddrv6 = $c['ipaddrv6'];
110
	if (is_ipaddr($ipaddr)) {
111
		$result2[] = "static";
112
	} else if ($ipaddr == "dhcp") {
113
		$result2[] = "dhcp";
114
	}
115
	if (is_ipaddr($ipaddrv6)) {
116
		$result2[] = "staticv6";
117
	} else if ($ipaddrv6 == "dhcp6") {
118
		$result2[] = "dhcp6";
119
	}
120
	if (count($result2)) {
121
		$result .= " - " . implode(", ", $result2);
122
	}
123
	return $result;
124
}
125
126 416e1530 Darren Embry
$fp = fopen('php://stdin', 'r');
127 bbc3533f Scott Ullrich
128 416e1530 Darren Embry
/* build an interface collection */
129
$ifdescrs = get_configured_interface_with_descr(false, true);
130 3f63e8e2 Darren Embry
$count = count($ifdescrs);
131 534334ba Scott Ullrich
	
132 416e1530 Darren Embry
/* grab interface that we will operate on, unless there is only one
133
   interface */
134 3f63e8e2 Darren Embry
if ($count > 1) {
135 416e1530 Darren Embry
	echo "Available interfaces:\n\n";
136
	$x=1;
137 6499a7d5 Darren Embry
	foreach($ifdescrs as $iface => $ifdescr) {
138 0098aa73 Darren Embry
		$config_descr = get_interface_config_description($iface);
139
		echo "{$x} - {$ifdescr} ({$config_descr})\n";
140 416e1530 Darren Embry
		$x++;
141 8dee794b Scott Ullrich
	}
142 416e1530 Darren Embry
	echo "\nEnter the number of the interface you wish to configure: ";
143
	$intnum = chop(fgets($fp));	
144
} else {
145 3f63e8e2 Darren Embry
	$intnum = $count;
146 416e1530 Darren Embry
}
147 d01ccca8 Chris Buechler
	
148 416e1530 Darren Embry
if($intnum < 1) 
149
	exit;
150 3f63e8e2 Darren Embry
if($intnum > $count)
151 416e1530 Darren Embry
	exit;
152 8dee794b Scott Ullrich
		
153 416e1530 Darren Embry
$index = 1;
154
foreach ($ifdescrs as $ifname => $ifdesc) {
155
	if ($intnum == $index)  {
156
		$interface = $ifname;
157
		break;
158
	} else {
159
		$index++;
160 8dee794b Scott Ullrich
	}
161 416e1530 Darren Embry
}	
162
if(!$interface) {
163
	echo "Invalid interface!\n";
164
	exit;
165
}
166 aab5f04c Ermal
167 416e1530 Darren Embry
$ifaceassigned = "";
168 c1361a9f Darren Embry
169 d23b53eb Darren Embry
function next_unused_gateway_name($interface) {
170
	global $g, $config;
171
	$new_name = "GW_" . strtoupper($interface);
172
173
	if (!is_array($config['gateways']['gateway_item'])) { return $new_name; }
174
	$count = 1;
175
	do {
176
		$existing = false;
177
		foreach ($config['gateways']['gateway_item'] as $item) {
178
			if ($item['name'] === $new_name) {
179
				$existing = true;
180
				break;
181
			}
182
		}
183
		if ($existing) {
184
			$count += 1;
185
			$new_name = "GW_" . strtoupper($interface) . "_" . $count;
186
		}
187
	} while ($existing);
188
	return $new_name;
189
}
190
191
function add_gateway_to_config($interface, $gatewayip, $inet_type) {
192
	global $g, $config, $dry_run;
193
	if (!is_array($config['gateways']['gateway_item'])) {
194
		$config['gateways']['gateway_item'] = array();
195
	}
196
	$a_gateways = &$config['gateways']['gateway_item'];
197
	if ($dry_run) {
198
		print_r($a_gateways);
199
	}
200
	$new_name = next_unused_gateway_name($interface);
201
	$is_default = true;
202
	foreach ($a_gateways as $item) {
203
		if ($item['ipprotocol'] === $inet_type) {
204
			$is_default = false;
205
			break;
206
		}
207
	}
208
	$item = array(
209
		"interface" => $interface,
210
		"gateway" => $gatewayip,
211
		"name" => $new_name,
212
		"weight" => 1,
213
		"ipprotocol" => $inet_type,
214
		"interval" => true,
215
		"descr" => "Interface $interface Gateway",
216
		"defaultgw" => $is_default
217
	);
218
	if ($dry_run) {
219
		print_r($item);
220
	}
221
	$a_gateways[] = $item;
222
}
223
224 c1361a9f Darren Embry
function console_configure_ip_address($version) {
225
	global $g, $config, $interface, $restart_dhcpd, $ifaceassigned, $fp;
226
227
	$label_IPvX = ($version === 6) ? "IPv6"   : "IPv4";
228
	$maxbits    = ($version === 6) ? 127      : 31;
229
	$label_DHCP = ($version === 6) ? "DHCP6"  : "DHCP";
230
231
	$upperifname = strtoupper($interface);
232
233 416e1530 Darren Embry
	if($interface == "wan") {
234 005a7049 Darren Embry
		echo sprintf(gettext("Configure %s address %s interface via %s?  [y|n]"),
235
		             $label_IPvX, $upperifname, $label_DHCP) . "\n> ";
236 416e1530 Darren Embry
		$intdhcp = chop(fgets($fp));
237
		if(strtolower($intdhcp) == "y" || strtolower($intdhcp) == "yes") {
238 aab5f04c Ermal
			$ifppp = console_get_interface_from_ppp(get_real_interface("wan"));
239
			if (!empty($ifppp))
240
				$ifaceassigned = $ifppp;
241 c1361a9f Darren Embry
			$intip = ($version === 6) ? "dhcp6" : "dhcp";
242 416e1530 Darren Embry
			$intbits = "";
243
			$isintdhcp = true;
244
			$restart_dhcpd = true;
245
		} 
246
	}
247
		
248
	if($isintdhcp == false or $interface <> "wan") {
249
		do {
250 005a7049 Darren Embry
			echo "\n" . sprintf(gettext("Enter the new %s %s address.  Press <ENTER> for none:"),
251
			                    $upperifname, $label_IPvX) . "\n> ";
252 416e1530 Darren Embry
			$intip = chop(fgets($fp));
253 c1361a9f Darren Embry
			$is_ipaddr = ($version === 6) ? is_ipaddrv6($intip) : is_ipaddrv4($intip);
254
		} while (!($is_ipaddr || $intip == ''));
255 416e1530 Darren Embry
		if ($intip != '') {
256 005a7049 Darren Embry
			echo "\n" . sprintf(gettext("Subnet masks are entered as bit counts (as in CIDR notation) in %s."),
257
			                    $g['product_name']) . "\n";
258 c1361a9f Darren Embry
			if ($version === 6) {
259
				echo "e.g. ffff:ffff:ffff:ffff:ffff:ffff:ffff:ff00 = 120\n";
260
				echo "     ffff:ffff:ffff:ffff:ffff:ffff:ffff:0    = 112\n";
261
				echo "     ffff:ffff:ffff:ffff:ffff:ffff:0:0       =  96\n";
262
				echo "     ffff:ffff:ffff:ffff:ffff:0:0:0          =  80\n";
263
				echo "     ffff:ffff:ffff:ffff:0:0:0:0             =  64\n";
264
			} else {
265
				echo "e.g. 255.255.255.0 = 24\n";
266
				echo "     255.255.0.0   = 16\n";
267
				echo "     255.0.0.0     = 8\n";
268
			}
269 416e1530 Darren Embry
			do {
270
				$upperifname = strtoupper($interface);
271 005a7049 Darren Embry
				echo "\n" . sprintf(gettext("Enter the new %s %s subnet bit count:"),
272
				                    $upperifname, $label_IPvX) . "\n> ";
273 416e1530 Darren Embry
				$intbits = chop(fgets($fp));
274
				$restart_dhcpd = true;
275 c1361a9f Darren Embry
			} while (!is_numeric($intbits) || ($intbits < 1) || ($intbits > $maxbits));
276 c63e3594 Darren Embry
277
			if ($version === 6) {
278
				$subnet = gen_subnetv6($intip, $intbits);
279
			} else {
280
				$subnet = gen_subnet($intip, $intbits);
281
			}
282
			do {
283 005a7049 Darren Embry
				echo "\n" . sprintf(gettext("Enter the new %s %s gateway address.  Press <ENTER> for none:"),
284
				                    $upperifname, $label_IPvX) . "\n> ";
285 c63e3594 Darren Embry
				$gwip = chop(fgets($fp));
286
				$is_ipaddr = ($version === 6) ? is_ipaddrv6($gwip) : is_ipaddrv4($gwip);
287 005a7049 Darren Embry
				$is_in_subnet = $is_ipaddr && ip_in_subnet($gwip, $subnet . "/" . $intbits);
288
				if ($gwip != '') {
289
					if (!$is_ipaddr) {
290
						echo sprintf(gettext("not an %s IP address!"), $label_IPvX) . "\n";
291
					} else if (!$is_in_subnet) {
292
						echo gettext("not in subnet!") . "\n";
293
					}
294 c63e3594 Darren Embry
				}
295 005a7049 Darren Embry
			} while (!($gwip == '' || ($is_ipaddr && $is_in_subnet)));
296 d23b53eb Darren Embry
297
			if ($gwip != '') {
298
				$inet_type = ($version === 6) ? "inet6" : "inet";
299
				add_gateway_to_config($interface, $gwip, $inet_type);
300
			}
301 5b237745 Scott Ullrich
		}
302 416e1530 Darren Embry
		$ifppp = console_get_interface_from_ppp(get_real_interface("wan"));
303
		if (!empty($ifppp))
304
			$ifaceassigned = $ifppp;
305
	}
306 5b237745 Scott Ullrich
307 c63e3594 Darren Embry
	return array($intip, $intbits, $gwip);
308 c1361a9f Darren Embry
}
309 bbc3533f Scott Ullrich
310 c63e3594 Darren Embry
list($intip,  $intbits,  $gwip)  = console_configure_ip_address(4);
311
list($intip6, $intbits6, $gwip6) = console_configure_ip_address(6);
312 bbc3533f Scott Ullrich
313 416e1530 Darren Embry
if (!empty($ifaceassigned))
314
	$config['interfaces'][$interface]['if'] = $ifaceassigned;
315
$config['interfaces'][$interface]['ipaddr'] = $intip;
316
$config['interfaces'][$interface]['subnet'] = $intbits;
317 bfaafe28 Darren Embry
if ($intip6) {
318 c1361a9f Darren Embry
	$config['interfaces'][$interface]['ipaddrv6'] = $intip6;
319
	$config['interfaces'][$interface]['subnetv6'] = $intbits6;
320
}
321 416e1530 Darren Embry
$config['interfaces'][$interface]['enable'] = true;
322 bbc3533f Scott Ullrich
323 c1361a9f Darren Embry
function console_configure_dhcpd($version = 4) {
324 c63e3594 Darren Embry
	global $g, $config, $restart_dhcpd, $fp, $interface, $dry_run;
325 c1361a9f Darren Embry
326
	$label_IPvX = ($version === 6) ? "IPv6"   : "IPv4";
327
	$dhcpd      = ($version === 6) ? "dhcpd6" : "dhcpd";
328
329
	if($g['services_dhcp_server_enable'])
330
		$yn = prompt_for_enable_dhcp_server($version);
331
	if ($yn == "y") {
332
		do {
333 005a7049 Darren Embry
			echo sprintf(gettext("Enter the start address of the %s client address range:"), $label_IPvX) . " ";
334 c1361a9f Darren Embry
			$dhcpstartip = chop(fgets($fp));
335
			if ($dhcpstartip === "") {
336
				fclose($fp);
337
				exit(0);
338
			}
339
			$is_ipaddr = ($version === 6) ? is_ipaddrv6($dhcpstartip) : is_ipaddrv4($dhcpstartip);
340
		} while (!$is_ipaddr);
341
342
		do {
343 005a7049 Darren Embry
			echo sprintf(gettext("Enter the end address of the %s client address range:"), $label_IPvX) . " ";
344 c1361a9f Darren Embry
			$dhcpendip = chop(fgets($fp));
345
			if ($dhcpendip === "") {
346
				fclose($fp);
347
				exit(0);
348
			}
349
			$is_ipaddr = ($version === 6) ? is_ipaddrv6($dhcpendip) : is_ipaddrv4($dhcpendip);
350
		} while (!$is_ipaddr);
351
		$restart_dhcpd = true;
352
		$config[$dhcpd][$interface]['enable'] = true;
353
		$config[$dhcpd][$interface]['range']['from'] = $dhcpstartip;
354
		$config[$dhcpd][$interface]['range']['to'] = $dhcpendip;
355
	} else {
356
		/* TODO - this line is causing a "Fatal error: Cannot unset
357
		   string offsets in /etc/rc.initial.setlanip" on below line
358
		   number */
359
		if($config[$dhcpd][$interface]) 
360
			unset($config[$dhcpd][$interface]['enable']);
361
		echo "Disabling DHCPD...";
362 c63e3594 Darren Embry
		if (!$dry_run) {
363
			services_dhcpd_configure();
364
		}
365 c1361a9f Darren Embry
		echo "Done!\n";
366
	}
367 416e1530 Darren Embry
}
368 bbc3533f Scott Ullrich
369 c1361a9f Darren Embry
console_configure_dhcpd(4);
370
console_configure_dhcpd(6);
371
	
372
//*****************************************************************************
373
374 416e1530 Darren Embry
if ($config['system']['webgui']['protocol'] == "https") {
375 01d72b37 Scott Ullrich
376 416e1530 Darren Embry
	do {
377
		$good = false;
378
		echo "\n" . gettext("Do you want to revert to HTTP as the webConfigurator protocol? (y/n)") . " ";
379
		$yn = strtolower(chop(fgets($fp)));
380
		if ($yn[0] == "y" or $yn[0] == "n")
381
			$good = true;
382
	} while (!$good);
383 01d72b37 Scott Ullrich
384 416e1530 Darren Embry
	if ($yn == "y") {
385
		$config['system']['webgui']['protocol'] = "http";
386
		$restart_webgui = true;
387 01d72b37 Scott Ullrich
	}
388 416e1530 Darren Embry
}
389 bbc3533f Scott Ullrich
390 416e1530 Darren Embry
if (isset($config['system']['webgui']['noantilockout'])) {
391 005a7049 Darren Embry
	echo "\n" . sprintf(gettext("Note: the anti-lockout rule on %s has been re-enabled."), $interface) . "\n";
392 416e1530 Darren Embry
	unset($config['system']['webgui']['noantilockout']);
393
}
394 bbc3533f Scott Ullrich
395 416e1530 Darren Embry
if($config['interfaces']['lan']) {
396
	if($config['dhcpd'])
397
		if($config['dhcpd']['wan'])
398
			unset($config['dhcpd']['wan']);		
399 c1361a9f Darren Embry
	if($config['dhcpd6'])
400
		if($config['dhcpd6']['wan'])
401
			unset($config['dhcpd6']['wan']);		
402 416e1530 Darren Embry
}
403 68ad6d22 Scott Ullrich
404 416e1530 Darren Embry
if(!$config['interfaces']['lan']) {
405
	unset($config['interfaces']['lan']);
406
	if($config['dhcpd']['lan'])
407
		unset($config['dhcpd']['lan']);
408 c1361a9f Darren Embry
	if($config['dhcpd6']['lan'])
409
		unset($config['dhcpd6']['lan']);
410 416e1530 Darren Embry
	unset($config['shaper']);
411
	unset($config['ezshaper']);
412
	unset($config['nat']);
413 c63e3594 Darren Embry
	if (!$dry_run) {
414
		system("rm /var/dhcpd/var/db/* >/dev/null 2>/dev/null");
415
		services_dhcpd_configure();
416
	}
417 416e1530 Darren Embry
}
418 68ad6d22 Scott Ullrich
419 416e1530 Darren Embry
$upperifname = strtoupper($interface);
420 c63e3594 Darren Embry
if (!$dry_run) {
421
	echo "\nPlease wait while the changes are saved to {$upperifname}...";
422 1b8bf24d Darren Embry
	write_config(sprintf(gettext("%s IP configuration from console menu"), $interface));
423 c63e3594 Darren Embry
	interface_reconfigure(strtolower($upperifname));
424
	echo " Reloading filter...";
425
	filter_configure_sync();
426
	echo "\n";
427
	if($restart_dhcpd) {
428
		echo " DHCPD..."; 
429
		services_dhcpd_configure();
430
	}
431
	if($restart_webgui) {
432
		echo " restarting webConfigurator... ";
433
		mwexec("/etc/rc.restart_webgui");
434
	}
435 416e1530 Darren Embry
}
436 d1c46aef Scott Ullrich
	
437 416e1530 Darren Embry
if ($intip != '') {
438
	if (is_ipaddr($intip)) {
439 1b8bf24d Darren Embry
		echo "\n\n" . sprintf(gettext("The IPv4 %s address has been set to %s"),
440
		                      $upperifname, "{$intip}/{$intbits}") . "\n";
441 416e1530 Darren Embry
	} else {
442 1b8bf24d Darren Embry
		echo "\n\n" . sprintf(gettext("The IPv4 %s address has been set to %s"),
443
		                      $upperifname, $intip) . "\n";
444 416e1530 Darren Embry
	}
445 c1361a9f Darren Embry
}
446
if ($intip6 != '') {
447
	if (is_ipaddr($intip6)) {
448 1b8bf24d Darren Embry
		echo "\n\n" . sprintf(gettext("The IPv6 %s address has been set to %s"),
449
		                      $upperifname, "${intip6}/${intbits6}") . "\n";
450 c1361a9f Darren Embry
	} else {
451 1b8bf24d Darren Embry
		echo "\n\n" . sprintf(gettext("The IPv6 %s address has been set to %s"),
452
		                      $upperifname, $intip6) . "\n";
453 c1361a9f Darren Embry
	}
454
}
455
456
if ($intip != '' || $intip6 != '') {
457 416e1530 Darren Embry
	if (count($ifdescrs) == "1" or $interface = "lan") {
458
		if ($debug) {
459
			echo "ifdescrs count is " . count($ifdescrs) . "\n";
460
			echo "interface is {$interface} \n";
461 db747fb1 Chris Buechler
		}
462 416e1530 Darren Embry
		echo gettext('You can now access the webConfigurator by opening the following URL in your web browser:') . "\n";
463
		if(!empty($config['system']['webgui']['port'])) {
464
			$webuiport = $config['system']['webgui']['port'];
465 b3cb233f Darren Embry
			if ($intip != '') {
466 d71371bc Darren Embry
				echo "		{$config['system']['webgui']['protocol']}://{$intip}:{$webuiport}/\n";
467 b3cb233f Darren Embry
			}
468
			if ($intip6 != '') {
469
				if (is_ipaddr($intip6)) {
470 d71371bc Darren Embry
					echo "		{$config['system']['webgui']['protocol']}://[{$intip6}]:{$webuiport}/\n";
471 b3cb233f Darren Embry
				} else {
472 d71371bc Darren Embry
					echo "		{$config['system']['webgui']['protocol']}://{$intip6}:{$webuiport}/\n";
473 b3cb233f Darren Embry
				}
474
			}
475 416e1530 Darren Embry
		} else {
476 b3cb233f Darren Embry
			if ($intip != '') {
477
				echo "		{$config['system']['webgui']['protocol']}://{$intip}/\n";
478
			}
479
			if ($intip6 != '') {
480
				if (is_ipaddr($intip6)) {
481
					echo "		{$config['system']['webgui']['protocol']}://[{$intip6}]/\n";
482
				} else {
483
					echo "		{$config['system']['webgui']['protocol']}://{$intip6}/\n";
484
				}
485
			}
486 35380504 Seth Mos
		}
487 8dee794b Scott Ullrich
	}
488 416e1530 Darren Embry
}
489 5b237745 Scott Ullrich
490 416e1530 Darren Embry
echo "\n" . gettext('Press <ENTER> to continue.');
491 5b237745 Scott Ullrich
492 416e1530 Darren Embry
fgets($fp);
493
fclose($fp);
494 68ad6d22 Scott Ullrich
		
495 9b2e42c9 Ermal
?>