Project

General

Profile

Download (32.7 KB) Statistics
| Branch: | Tag: | Revision:
1
#!/usr/local/bin/php
2
<?php
3
/* $Id$ */
4
/*
5
	interfaces_wan.php
6
        Copyright (C) 2004 Scott Ullrich
7
	All rights reserved.
8
        
9
	originally part of m0n0wall (http://m0n0.ch/wall)
10
	Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>.
11
	All rights reserved.
12

    
13
	Redistribution and use in source and binary forms, with or without
14
	modification, are permitted provided that the following conditions are met:
15

    
16
	1. Redistributions of source code must retain the above copyright notice,
17
	   this list of conditions and the following disclaimer.
18

    
19
	2. Redistributions in binary form must reproduce the above copyright
20
	   notice, this list of conditions and the following disclaimer in the
21
	   documentation and/or other materials provided with the distribution.
22

    
23
	THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
24
	INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
25
	AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26
	AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
27
	OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
28
	SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
29
	INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
30
	CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
31
	ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32
	POSSIBILITY OF SUCH DAMAGE.
33
*/
34

    
35
require("guiconfig.inc");
36

    
37
$wancfg = &$config['interfaces']['wan'];
38
$optcfg = &$config['interfaces']['wan'];
39

    
40
$pconfig['username'] = $config['pppoe']['username'];
41
$pconfig['password'] = $config['pppoe']['password'];
42
$pconfig['provider'] = $config['pppoe']['provider'];
43
$pconfig['pppoe_dialondemand'] = isset($config['pppoe']['ondemand']);
44
$pconfig['pppoe_idletimeout'] = $config['pppoe']['timeout'];
45

    
46
$pconfig['pptp_username'] = $config['pptp']['username'];
47
$pconfig['pptp_password'] = $config['pptp']['password'];
48
$pconfig['pptp_local'] = $config['pptp']['local'];
49
$pconfig['pptp_subnet'] = $config['pptp']['subnet'];
50
$pconfig['pptp_remote'] = $config['pptp']['remote'];
51
$pconfig['pptp_dialondemand'] = isset($config['pptp']['ondemand']);
52
$pconfig['pptp_idletimeout'] = $config['pptp']['timeout'];
53

    
54
$pconfig['bigpond_username'] = $config['bigpond']['username'];
55
$pconfig['bigpond_password'] = $config['bigpond']['password'];
56
$pconfig['bigpond_authserver'] = $config['bigpond']['authserver'];
57
$pconfig['bigpond_authdomain'] = $config['bigpond']['authdomain'];
58
$pconfig['bigpond_minheartbeatinterval'] = $config['bigpond']['minheartbeatinterval'];
59

    
60
$pconfig['dhcphostname'] = $wancfg['dhcphostname'];
61

    
62
if ($wancfg['ipaddr'] == "dhcp") {
63
	$pconfig['type'] = "DHCP";
64
} else if ($wancfg['ipaddr'] == "pppoe") {
65
	$pconfig['type'] = "PPPoE";
66
} else if ($wancfg['ipaddr'] == "pptp") {
67
	$pconfig['type'] = "PPTP";
68
} else if ($wancfg['ipaddr'] == "bigpond") {
69
	$pconfig['type'] = "BigPond";
70
} else {
71
	$pconfig['type'] = "Static";
72
	$pconfig['ipaddr'] = $wancfg['ipaddr'];
73
	$pconfig['subnet'] = $wancfg['subnet'];
74
	$pconfig['gateway'] = $config['interfaces']['wan']['gateway'];
75
	$pconfig['pointtopoint'] = $wancfg['pointtopoint'];
76
}
77

    
78
$pconfig['blockpriv'] = isset($wancfg['blockpriv']);
79
$pconfig['blockbogons'] = isset($wancfg['blockbogons']);
80
$pconfig['spoofmac'] = $wancfg['spoofmac'];
81
$pconfig['mtu'] = $wancfg['mtu'];
82

    
83
/* Wireless interface? */
84
if (isset($wancfg['wireless'])) {
85
	require("interfaces_wlan.inc");
86
	wireless_config_init();
87
}
88

    
89
if ($_POST) {
90

    
91
	unset($input_errors);
92
	$pconfig = $_POST;
93

    
94
	/* input validation */
95
	if ($_POST['type'] == "Static") {
96
		$reqdfields = explode(" ", "ipaddr subnet gateway");
97
		$reqdfieldsn = explode(",", "IP address,Subnet bit count,Gateway");
98
		do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors);
99
	} else if ($_POST['type'] == "PPPoE") {
100
		if ($_POST['pppoe_dialondemand']) {
101
			$reqdfields = explode(" ", "username password pppoe_dialondemand pppoe_idletimeout");
102
			$reqdfieldsn = explode(",", "PPPoE username,PPPoE password,Dial on demand,Idle timeout value");
103
		} else {
104
			$reqdfields = explode(" ", "username password");
105
			$reqdfieldsn = explode(",", "PPPoE username,PPPoE password");
106
		}
107
		do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors);
108
	} else if ($_POST['type'] == "PPTP") {
109
		if ($_POST['pptp_dialondemand']) {
110
			$reqdfields = explode(" ", "pptp_username pptp_password pptp_local pptp_subnet pptp_remote pptp_dialondemand pptp_idletimeout");
111
			$reqdfieldsn = explode(",", "PPTP username,PPTP password,PPTP local IP address,PPTP subnet,PPTP remote IP address,Dial on demand,Idle timeout value");
112
		} else {
113
			$reqdfields = explode(" ", "pptp_username pptp_password pptp_local pptp_subnet pptp_remote");
114
			$reqdfieldsn = explode(",", "PPTP username,PPTP password,PPTP local IP address,PPTP subnet,PPTP remote IP address");
115
		}
116
		do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors);
117
	} else if ($_POST['type'] == "BigPond") {
118
		$reqdfields = explode(" ", "bigpond_username bigpond_password");
119
		$reqdfieldsn = explode(",", "BigPond username,BigPond password");
120
		do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors);
121
	}
122

    
123
        /* normalize MAC addresses - lowercase and convert Windows-ized hyphenated MACs to colon delimited */
124
        $_POST['spoofmac'] = strtolower(str_replace("-", ":", $_POST['spoofmac']));
125

    
126
	if (($_POST['ipaddr'] && !is_ipaddr($_POST['ipaddr']))) {
127
		$input_errors[] = "A valid IP address must be specified.";
128
	}
129
	if (($_POST['subnet'] && !is_numeric($_POST['subnet']))) {
130
		$input_errors[] = "A valid subnet bit count must be specified.";
131
	}
132
	if (($_POST['gateway'] && !is_ipaddr($_POST['gateway']))) {
133
		$input_errors[] = "A valid gateway must be specified.";
134
	}
135
	if (($_POST['pointtopoint'] && !is_ipaddr($_POST['pointtopoint']))) {
136
		$input_errors[] = "A valid point-to-point IP address must be specified.";
137
	}
138
	if (($_POST['provider'] && !is_domain($_POST['provider']))) {
139
		$input_errors[] = "The service name contains invalid characters.";
140
	}
141
	if (($_POST['pppoe_idletimeout'] != "") && !is_numericint($_POST['pppoe_idletimeout'])) {
142
		$input_errors[] = "The idle timeout value must be an integer.";
143
	}
144
	if (($_POST['pptp_local'] && !is_ipaddr($_POST['pptp_local']))) {
145
		$input_errors[] = "A valid PPTP local IP address must be specified.";
146
	}
147
	if (($_POST['pptp_subnet'] && !is_numeric($_POST['pptp_subnet']))) {
148
		$input_errors[] = "A valid PPTP subnet bit count must be specified.";
149
	}
150
	if (($_POST['pptp_remote'] && !is_ipaddr($_POST['pptp_remote']))) {
151
		$input_errors[] = "A valid PPTP remote IP address must be specified.";
152
	}
153
	if (($_POST['pptp_idletimeout'] != "") && !is_numericint($_POST['pptp_idletimeout'])) {
154
		$input_errors[] = "The idle timeout value must be an integer.";
155
	}
156
	if (($_POST['bigpond_authserver'] && !is_domain($_POST['bigpond_authserver']))) {
157
		$input_errors[] = "The authentication server name contains invalid characters.";
158
	}
159
	if (($_POST['bigpond_authdomain'] && !is_domain($_POST['bigpond_authdomain']))) {
160
		$input_errors[] = "The authentication domain name contains invalid characters.";
161
	}
162
	if ($_POST['bigpond_minheartbeatinterval'] && !is_numericint($_POST['bigpond_minheartbeatinterval'])) {
163
		$input_errors[] = "The minimum heartbeat interval must be an integer.";
164
	}
165
	if (($_POST['spoofmac'] && !is_macaddr($_POST['spoofmac']))) {
166
		$input_errors[] = "A valid MAC address must be specified.";
167
	}
168
	if ($_POST['mtu'] && (($_POST['mtu'] < 576) || ($_POST['mtu'] > 1500))) {
169
		$input_errors[] = "The MTU must be between 576 and 1500 bytes.";
170
	}
171
	if($_POST['bandwidth'] <> "" && !is_numeric($_POST['bandwidth'])) {
172
		$input_errors[] = "A valid bandwidth value is required 1-999999.";
173
	}
174

    
175
	/* Wireless interface? */
176
	if (isset($wancfg['wireless'])) {
177
		$wi_input_errors = wireless_config_post();
178
		if ($wi_input_errors) {
179
			$input_errors = array_merge($input_errors, $wi_input_errors);
180
		}
181
	}
182

    
183
	if (!$input_errors) {
184

    
185
		$bridge = discover_bridge($wancfg['if'], filter_translate_type_to_real_interface($wancfg['bridge']));
186
		if($bridge <> "-1") {
187
			destroy_bridge($bridge);
188
		}
189
	
190
		unset($wancfg['ipaddr']);
191
		unset($wancfg['subnet']);
192
		unset($config['interfaces']['wan']['gateway']);
193
		unset($wancfg['pointtopoint']);
194
		unset($wancfg['dhcphostname']);
195
		unset($config['pppoe']['username']);
196
		unset($config['pppoe']['password']);
197
		unset($config['pppoe']['provider']);
198
		unset($config['pppoe']['ondemand']);
199
		unset($config['pppoe']['timeout']);
200
		unset($config['pptp']['username']);
201
		unset($config['pptp']['password']);
202
		unset($config['pptp']['local']);
203
		unset($config['pptp']['subnet']);
204
		unset($config['pptp']['remote']);
205
		unset($config['pptp']['ondemand']);
206
		unset($config['pptp']['timeout']);
207
		unset($config['bigpond']['username']);
208
		unset($config['bigpond']['password']);
209
		unset($config['bigpond']['authserver']);
210
		unset($config['bigpond']['authdomain']);
211
		unset($config['bigpond']['minheartbeatinterval']);
212

    
213
		if ($_POST['type'] == "Static") {
214
			$wancfg['ipaddr'] = $_POST['ipaddr'];
215
			$wancfg['subnet'] = $_POST['subnet'];
216
			$config['interfaces']['wan']['gateway'] = $_POST['gateway'];
217
			if (isset($wancfg['ispointtopoint']))
218
				$wancfg['pointtopoint'] = $_POST['pointtopoint'];
219
		} else if ($_POST['type'] == "DHCP") {
220
			$wancfg['ipaddr'] = "dhcp";
221
			$wancfg['dhcphostname'] = $_POST['dhcphostname'];
222
		} else if ($_POST['type'] == "PPPoE") {
223
			$wancfg['ipaddr'] = "pppoe";
224
			$config['pppoe']['username'] = $_POST['username'];
225
			$config['pppoe']['password'] = $_POST['password'];
226
			$config['pppoe']['provider'] = $_POST['provider'];
227
			$config['pppoe']['ondemand'] = $_POST['pppoe_dialondemand'] ? true : false;
228
			$config['pppoe']['timeout'] = $_POST['pppoe_idletimeout'];
229
		} else if ($_POST['type'] == "PPTP") {
230
			$wancfg['ipaddr'] = "pptp";
231
			$config['pptp']['username'] = $_POST['pptp_username'];
232
			$config['pptp']['password'] = $_POST['pptp_password'];
233
			$config['pptp']['local'] = $_POST['pptp_local'];
234
			$config['pptp']['subnet'] = $_POST['pptp_subnet'];
235
			$config['pptp']['remote'] = $_POST['pptp_remote'];
236
			$config['pptp']['ondemand'] = $_POST['pptp_dialondemand'] ? true : false;
237
			$config['pptp']['timeout'] = $_POST['pptp_idletimeout'];
238
		} else if ($_POST['type'] == "BigPond") {
239
			$wancfg['ipaddr'] = "bigpond";
240
			$config['bigpond']['username'] = $_POST['bigpond_username'];
241
			$config['bigpond']['password'] = $_POST['bigpond_password'];
242
			$config['bigpond']['authserver'] = $_POST['bigpond_authserver'];
243
			$config['bigpond']['authdomain'] = $_POST['bigpond_authdomain'];
244
			$config['bigpond']['minheartbeatinterval'] = $_POST['bigpond_minheartbeatinterval'];
245
		}
246

    
247
		if($_POST['bandwidth'] <> "" and $_POST['bandwidthtype'] <> "") {
248
			$wancfg['bandwidth'] = $_POST['bandwidth'];
249
			$wancfg['bandwidthtype'] = $_POST['bandwidthtype'];
250
		} else {
251
			unset($wancfg['bandwidth']);
252
			unset($wancfg['bandwidthtype']);
253
		}
254

    
255
		$wancfg['blockpriv'] = $_POST['blockpriv'] ? true : false;
256
		$wancfg['blockbogons'] = $_POST['blockbogons'] ? true : false;
257
		$wancfg['spoofmac'] = $_POST['spoofmac'];
258
		$wancfg['mtu'] = $_POST['mtu'];
259

    
260
		write_config();
261

    
262
		$retval = 0;
263
		config_lock();
264
		$retval = interfaces_wan_configure();
265
		config_unlock();
266

    
267
		/* setup carp interfaces */
268
		interfaces_carp_configure();
269

    
270
		$savemsg = get_std_save_message($retval);
271
	}
272
}
273

    
274
$pgtitle = "Interfaces: WAN";
275
include("head.inc");
276

    
277
?>
278

    
279
<script language="JavaScript">
280
<!--
281
function enable_change(enable_change) {
282
	if (document.iform.pppoe_dialondemand.checked || enable_change) {
283
		document.iform.pppoe_idletimeout.disabled = 0;
284
	} else {
285
		document.iform.pppoe_idletimeout.disabled = 1;
286
	}
287
}
288

    
289
function enable_change_pptp(enable_change_pptp) {
290
	if (document.iform.pptp_dialondemand.checked || enable_change_pptp) {
291
		document.iform.pptp_idletimeout.disabled = 0;
292
		document.iform.pptp_local.disabled = 0;
293
		document.iform.pptp_remote.disabled = 0;
294
	} else {
295
		document.iform.pptp_idletimeout.disabled = 1;
296
	}
297
}
298

    
299
function type_change(enable_change,enable_change_pptp) {
300
	switch (document.iform.type.selectedIndex) {
301
		case 0:
302
			document.iform.username.disabled = 1;
303
			document.iform.password.disabled = 1;
304
			document.iform.provider.disabled = 1;
305
			document.iform.pppoe_dialondemand.disabled = 1;
306
			document.iform.pppoe_idletimeout.disabled = 1;
307
			document.iform.ipaddr.disabled = 0;
308
			document.iform.subnet.disabled = 0;
309
			document.iform.gateway.disabled = 0;
310
			document.iform.pptp_username.disabled = 1;
311
			document.iform.pptp_password.disabled = 1;
312
			document.iform.pptp_local.disabled = 1;
313
			document.iform.pptp_subnet.disabled = 1;
314
			document.iform.pptp_remote.disabled = 1;
315
			document.iform.pptp_dialondemand.disabled = 1;
316
			document.iform.pptp_idletimeout.disabled = 1;
317
			document.iform.bigpond_username.disabled = 1;
318
			document.iform.bigpond_password.disabled = 1;
319
			document.iform.bigpond_authserver.disabled = 1;
320
			document.iform.bigpond_authdomain.disabled = 1;
321
			document.iform.bigpond_minheartbeatinterval.disabled = 1;
322
			document.iform.dhcphostname.disabled = 1;
323
			break;
324
		case 1:
325
			document.iform.username.disabled = 1;
326
			document.iform.password.disabled = 1;
327
			document.iform.provider.disabled = 1;
328
			document.iform.pppoe_dialondemand.disabled = 1;
329
			document.iform.pppoe_idletimeout.disabled = 1;
330
			document.iform.ipaddr.disabled = 1;
331
			document.iform.subnet.disabled = 1;
332
			document.iform.gateway.disabled = 1;
333
			document.iform.pptp_username.disabled = 1;
334
			document.iform.pptp_password.disabled = 1;
335
			document.iform.pptp_local.disabled = 1;
336
			document.iform.pptp_subnet.disabled = 1;
337
			document.iform.pptp_remote.disabled = 1;
338
			document.iform.pptp_dialondemand.disabled = 1;
339
			document.iform.pptp_idletimeout.disabled = 1;
340
			document.iform.bigpond_username.disabled = 1;
341
			document.iform.bigpond_password.disabled = 1;
342
			document.iform.bigpond_authserver.disabled = 1;
343
			document.iform.bigpond_authdomain.disabled = 1;
344
			document.iform.bigpond_minheartbeatinterval.disabled = 1;
345
			document.iform.dhcphostname.disabled = 0;
346
			break;
347
		case 2:
348
			document.iform.username.disabled = 0;
349
			document.iform.password.disabled = 0;
350
			document.iform.provider.disabled = 0;
351
			document.iform.pppoe_dialondemand.disabled = 0;
352
			if (document.iform.pppoe_dialondemand.checked || enable_change) {
353
				document.iform.pppoe_idletimeout.disabled = 0;
354
			} else {
355
				document.iform.pppoe_idletimeout.disabled = 1;
356
			}
357
			document.iform.ipaddr.disabled = 1;
358
			document.iform.subnet.disabled = 1;
359
			document.iform.gateway.disabled = 1;
360
			document.iform.pptp_username.disabled = 1;
361
			document.iform.pptp_password.disabled = 1;
362
			document.iform.pptp_local.disabled = 1;
363
			document.iform.pptp_subnet.disabled = 1;
364
			document.iform.pptp_remote.disabled = 1;
365
			document.iform.pptp_dialondemand.disabled = 1;
366
			document.iform.pptp_idletimeout.disabled = 1;
367
			document.iform.bigpond_username.disabled = 1;
368
			document.iform.bigpond_password.disabled = 1;
369
			document.iform.bigpond_authserver.disabled = 1;
370
			document.iform.bigpond_authdomain.disabled = 1;
371
			document.iform.bigpond_minheartbeatinterval.disabled = 1;
372
			document.iform.dhcphostname.disabled = 1;
373
			break;
374
		case 3:
375
			document.iform.username.disabled = 1;
376
			document.iform.password.disabled = 1;
377
			document.iform.provider.disabled = 1;
378
			document.iform.pppoe_dialondemand.disabled = 1;
379
			document.iform.pppoe_idletimeout.disabled = 1;
380
			document.iform.ipaddr.disabled = 1;
381
			document.iform.subnet.disabled = 1;
382
			document.iform.gateway.disabled = 1;
383
			document.iform.pptp_username.disabled = 0;
384
			document.iform.pptp_password.disabled = 0;
385
			document.iform.pptp_local.disabled = 0;
386
			document.iform.pptp_subnet.disabled = 0;
387
			document.iform.pptp_remote.disabled = 0;
388
			document.iform.pptp_dialondemand.disabled = 0;
389
			if (document.iform.pptp_dialondemand.checked || enable_change_pptp) {
390
				document.iform.pptp_idletimeout.disabled = 0;
391
			} else {
392
				document.iform.pptp_idletimeout.disabled = 1;
393
			}
394
			document.iform.bigpond_username.disabled = 1;
395
			document.iform.bigpond_password.disabled = 1;
396
			document.iform.bigpond_authserver.disabled = 1;
397
			document.iform.bigpond_authdomain.disabled = 1;
398
			document.iform.bigpond_minheartbeatinterval.disabled = 1;
399
			document.iform.dhcphostname.disabled = 1;
400
			break;
401
		case 4:
402
			document.iform.username.disabled = 1;
403
			document.iform.password.disabled = 1;
404
			document.iform.provider.disabled = 1;
405
			document.iform.pppoe_dialondemand.disabled = 1;
406
			document.iform.pppoe_idletimeout.disabled = 1;
407
			document.iform.ipaddr.disabled = 1;
408
			document.iform.subnet.disabled = 1;
409
			document.iform.gateway.disabled = 1;
410
			document.iform.pptp_username.disabled = 1;
411
			document.iform.pptp_password.disabled = 1;
412
			document.iform.pptp_local.disabled = 1;
413
			document.iform.pptp_subnet.disabled = 1;
414
			document.iform.pptp_remote.disabled = 1;
415
			document.iform.pptp_dialondemand.disabled = 1;
416
			document.iform.pptp_idletimeout.disabled = 1;
417
			document.iform.bigpond_username.disabled = 0;
418
			document.iform.bigpond_password.disabled = 0;
419
			document.iform.bigpond_authserver.disabled = 0;
420
			document.iform.bigpond_authdomain.disabled = 0;
421
			document.iform.bigpond_minheartbeatinterval.disabled = 0;
422
			document.iform.dhcphostname.disabled = 1;
423
			break;
424
	}
425
}
426
//-->
427
</script>
428

    
429
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
430
<?php include("fbegin.inc"); ?>
431
<p class="pgtitle"><?=$pgtitle?></p>
432
<?php if ($input_errors) print_input_errors($input_errors); ?>
433
<?php if ($savemsg) print_info_box($savemsg); ?>
434
            <form action="interfaces_wan.php" method="post" name="iform" id="iform">
435
              <table width="100%" border="0" cellpadding="6" cellspacing="0">
436
                <tr>
437
                  <td colspan="2" valign="top" class="listtopic">General configuration</td>
438
                </tr>
439
                <tr>
440
                  <td valign="middle" class="vncell"><strong>Type</strong></td>
441
                  <td class="vtable"> <select name="type" class="formfld" id="type" onchange="type_change()">
442
                      <?php $opts = split(" ", "Static DHCP PPPoE PPTP BigPond");
443
				foreach ($opts as $opt): ?>
444
                      <option <?php if ($opt == $pconfig['type']) echo "selected";?>>
445
                      <?=htmlspecialchars($opt);?>
446
                      </option>
447
                      <?php endforeach; ?>
448
                    </select></td>
449
                </tr>
450
                <tr>
451
                  <td valign="top" class="vncell">MAC address</td>
452
                  <td class="vtable"> <input name="spoofmac" type="text" class="formfld" id="spoofmac" size="30" value="<?=htmlspecialchars($pconfig['spoofmac']);?>">
453
		    <?php
454
			$ip = getenv('REMOTE_ADDR');
455
			$mac = `/usr/sbin/arp -an | grep {$ip} | cut -d" " -f4`;
456
			$mac = str_replace("\n","",$mac);
457
		    ?>
458
		    <a OnClick="document.forms[0].spoofmac.value='<?=$mac?>';" href="#">Copy my MAC address</a>   
459
		    <br>
460
                    This field can be used to modify (&quot;spoof&quot;) the MAC
461
                    address of the WAN interface<br>
462
                    (may be required with some cable connections)<br>
463
                    Enter a MAC address in the following format: xx:xx:xx:xx:xx:xx
464
                    or leave blank</td>
465
                </tr>
466
                <tr>
467
                  <td valign="top" class="vncell">MTU</td>
468
                  <td class="vtable"> <input name="mtu" type="text" class="formfld" id="mtu" size="8" value="<?=htmlspecialchars($pconfig['mtu']);?>">
469
                    <br>
470
                    If you enter a value in this field, then MSS clamping for
471
                    TCP connections to the value entered above minus 40 (TCP/IP
472
                    header size) will be in effect. If you leave this field blank,
473
                    an MTU of 1492 bytes for PPPoE and 1500 bytes for all other
474
                    connection types will be assumed.</td>
475
                </tr>
476
                <tr>
477
                  <td colspan="2" valign="top" height="16"></td>
478
                </tr>
479
                <tr>
480
                  <td colspan="2" valign="top" class="listtopic">Static IP configuration</td>
481
                </tr>
482
                <tr>
483
                  <td width="100" valign="top" class="vncellreq">IP address</td>
484
                  <td class="vtable"> <input name="ipaddr" type="text" class="formfld" id="ipaddr" size="20" value="<?=htmlspecialchars($pconfig['ipaddr']);?>">
485
                    /
486
                    <select name="subnet" class="formfld" id="subnet">
487
			<?php
488
			for ($i = 32; $i > 0; $i--) {
489
				if($i <> 31) {
490
					echo "<option value=\"{$i}\" ";
491
					if ($i == $pconfig['subnet']) echo "selected";
492
					echo ">" . $i . "</option>";
493
				}
494
			}
495
			?>
496
                    </select></td>
497
                </tr><?php if (isset($wancfg['ispointtopoint'])): ?>
498
                <tr>
499
                  <td valign="top" class="vncellreq">Point-to-point IP address </td>
500
                  <td class="vtable">
501
                    <input name="pointtopoint" type="text" class="formfld" id="pointtopoint" size="20" value="<?=htmlspecialchars($pconfig['pointtopoint']);?>">
502
                  </td>
503
                </tr><?php endif; ?>
504
                <tr>
505
                  <td valign="top" class="vncellreq">Gateway</td>
506
                  <td class="vtable"> <input name="gateway" type="text" class="formfld" id="gateway" size="20" value="<?=htmlspecialchars($pconfig['gateway']);?>">
507
                  </td>
508
                </tr>
509
                <tr>
510
                  <td colspan="2" valign="top" height="16"></td>
511
                </tr>
512
                <tr>
513
                  <td colspan="2" valign="top" class="listtopic">Bandwidth Management (Traffic Shaping)</td>
514
                </tr>
515
                <tr>
516
                  <td valign="top" class="vncell">Interface Bandwidth Speed</td>
517
                  <td class="vtable"> <input name="bandwidth" type="text" class="formfld" id="bandwidth" size="30" value="<?=htmlspecialchars($wancfg['bandwidth']);?>">
518
			<select name="bandwidthtype">
519
				<option value="<?=htmlspecialchars($wancfg['bandwidthtype']);?>"><?=htmlspecialchars($wancfg['bandwidthtype']);?></option>
520
				<option value="b">bit/s</option>
521
				<option value="Kb">Kilobit/s</option>
522
				<option value="Mb">Megabit/s</option>
523
				<option value="Gb">Gigabit/s</option>
524
				<option value=""></option>
525
			</select>
526
			<br> The bandwidth setting will define the speed of the interface for traffic shaping.  Do not enter your "Internet" bandwidth here, only the physical speed!
527
		  </td>
528
                </tr>
529
                <tr>
530
                  <td colspan="2" valign="top" height="16"></td>
531
                </tr>
532
                <tr>
533
                  <td colspan="2" valign="top" class="listtopic">DHCP client configuration</td>
534
                </tr>
535
                <tr>
536
                  <td valign="top" class="vncell">Hostname</td>
537
                  <td class="vtable"> <input name="dhcphostname" type="text" class="formfld" id="dhcphostname" size="40" value="<?=htmlspecialchars($pconfig['dhcphostname']);?>">
538
                    <br>
539
                    The value in this field is sent as the DHCP client identifier
540
                    and hostname when requesting a DHCP lease. Some ISPs may require
541
                    this (for client identification).</td>
542
                </tr>
543
                <tr>
544
                  <td colspan="2" valign="top" height="16"></td>
545
                </tr>
546
                <tr>
547
                  <td colspan="2" valign="top" class="listtopic">PPPoE configuration</td>
548
                </tr>
549
                <tr>
550
                  <td valign="top" class="vncellreq">Username</td>
551
                  <td class="vtable"><input name="username" type="text" class="formfld" id="username" size="20" value="<?=htmlspecialchars($pconfig['username']);?>">
552
                  </td>
553
                </tr>
554
                <tr>
555
                  <td valign="top" class="vncellreq">Password</td>
556
                  <td class="vtable"><input name="password" type="text" class="formfld" id="password" size="20" value="<?=htmlspecialchars($pconfig['password']);?>">
557
                  </td>
558
                </tr>
559
                <tr>
560
                  <td valign="top" class="vncell">Service name</td>
561
                  <td class="vtable"><input name="provider" type="text" class="formfld" id="provider" size="20" value="<?=htmlspecialchars($pconfig['provider']);?>">
562
                    <br> <span class="vexpl">Hint: this field can usually be left
563
                    empty</span></td>
564
                </tr>
565
                <tr>
566
                  <td valign="top" class="vncell">Dial on demand</td>
567
                  <td class="vtable"><input name="pppoe_dialondemand" type="checkbox" id="pppoe_dialondemand" value="enable" <?php if ($pconfig['pppoe_dialondemand']) echo "checked"; ?> onClick="enable_change(false)" >
568
                    <strong>Enable Dial-On-Demand mode</strong><br>
569
		    This option causes the interface to operate in dial-on-demand mode, allowing you to have a <i>virtual full time</i> connection. The interface is configured, but the actual connection of the link is delayed until qualifying outgoing traffic is detected.</td>
570
                </tr>
571
                <tr>
572
                  <td valign="top" class="vncell">Idle timeout</td>
573
                  <td class="vtable">
574
                    <input name="pppoe_idletimeout" type="text" class="formfld" id="pppoe_idletimeout" size="8" value="<?=htmlspecialchars($pconfig['pppoe_idletimeout']);?>"> seconds<br>If no qualifying outgoing packets are transmitted for the specified number of seconds, the connection is brought down. An idle timeout of zero disables this feature.</td>
575
                </tr>
576
                <tr>
577
                  <td colspan="2" valign="top" height="16"></td>
578
                </tr>
579
                <tr>
580
                  <td colspan="2" valign="top" class="listtopic">PPTP configuration</td>
581
                </tr>
582
                <tr>
583
                  <td valign="top" class="vncellreq">Username</td>
584
                  <td class="vtable"><input name="pptp_username" type="text" class="formfld" id="pptp_username" size="20" value="<?=htmlspecialchars($pconfig['pptp_username']);?>">
585
                  </td>
586
                </tr>
587
                <tr>
588
                  <td valign="top" class="vncellreq">Password</td>
589
                  <td class="vtable"><input name="pptp_password" type="text" class="formfld" id="pptp_password" size="20" value="<?=htmlspecialchars($pconfig['pptp_password']);?>">
590
                  </td>
591
                </tr>
592
                <tr>
593
                  <td width="100" valign="top" class="vncellreq">Local IP address</td>
594
                  <td class="vtable"> <input name="pptp_local" type="text" class="formfld" id="pptp_local" size="20" value="<?=htmlspecialchars($pconfig['pptp_local']);?>">
595
                    /
596
                    <select name="pptp_subnet" class="formfld" id="pptp_subnet">
597
                      <?php for ($i = 31; $i > 0; $i--): ?>
598
                      <option value="<?=$i;?>" <?php if ($i == $pconfig['pptp_subnet']) echo "selected"; ?>>
599
                      <?=$i;?>
600
                      </option>
601
                      <?php endfor; ?>
602
                    </select></td>
603
                </tr>
604
                <tr>
605
                  <td width="100" valign="top" class="vncellreq">Remote IP address</td>
606
                  <td class="vtable"> <input name="pptp_remote" type="text" class="formfld" id="pptp_remote" size="20" value="<?=htmlspecialchars($pconfig['pptp_remote']);?>">
607
                  </td>
608
                </tr>
609
                <tr>
610
                  <td valign="top" class="vncell">Dial on demand</td>
611
                  <td class="vtable"><input name="pptp_dialondemand" type="checkbox" id="pptp_dialondemand" value="enable" <?php if ($pconfig['pptp_dialondemand']) echo "checked"; ?> onClick="enable_change_pptp(false)" >
612
                    <strong>Enable Dial-On-Demand mode</strong><br>
613
		    This option causes the interface to operate in dial-on-demand mode, allowing you to have a <i>virtual full time</i> connection. The interface is configured, but the actual connection of the link is delayed until qualifying outgoing traffic is detected.</td>
614
                </tr>
615
                <tr>
616
                  <td valign="top" class="vncell">Idle timeout</td>
617
                  <td class="vtable">
618
                    <input name="pptp_idletimeout" type="text" class="formfld" id="pptp_idletimeout" size="8" value="<?=htmlspecialchars($pconfig['pptp_idletimeout']);?>"> seconds<br>If no qualifying outgoing packets are transmitted for the specified number of seconds, the connection is brought down. An idle timeout of zero disables this feature.</td>
619
                </tr>
620
                <tr>
621
                  <td colspan="2" valign="top" height="16"></td>
622
                </tr>
623
                <tr>
624
                  <td colspan="2" valign="top" class="listtopic">BigPond Cable configuration</td>
625
                </tr>
626
                <tr>
627
                  <td valign="top" class="vncellreq">Username</td>
628
                  <td class="vtable"><input name="bigpond_username" type="text" class="formfld" id="bigpond_username" size="20" value="<?=htmlspecialchars($pconfig['bigpond_username']);?>">
629
                  </td>
630
                </tr>
631
                <tr>
632
                  <td valign="top" class="vncellreq">Password</td>
633
                  <td class="vtable"><input name="bigpond_password" type="text" class="formfld" id="bigpond_password" size="20" value="<?=htmlspecialchars($pconfig['bigpond_password']);?>">
634
                  </td>
635
                </tr>
636
                <tr>
637
                  <td valign="top" class="vncell">Authentication server</td>
638
                  <td class="vtable"><input name="bigpond_authserver" type="text" class="formfld" id="bigpond_authserver" size="20" value="<?=htmlspecialchars($pconfig['bigpond_authserver']);?>">
639
                    <br>
640
                  <span class="vexpl">If this field is left empty, the default (&quot;dce-server&quot;) is used. </span></td>
641
                </tr>
642
                <tr>
643
                  <td valign="top" class="vncell">Authentication domain</td>
644
                  <td class="vtable"><input name="bigpond_authdomain" type="text" class="formfld" id="bigpond_authdomain" size="20" value="<?=htmlspecialchars($pconfig['bigpond_authdomain']);?>">
645
                    <br>
646
                  <span class="vexpl">If this field is left empty, the domain name assigned via DHCP will be used.<br>
647
                  <br>
648
                  Note: the BigPond client implicitly sets the &quot;Allow DNS server list to be overridden by DHCP/PPP on WAN&quot; on the System: General setup page.            </span></td>
649
                </tr>
650
                <tr>
651
                  <td valign="top" class="vncell">Min. heartbeat interval</td>
652
                  <td class="vtable">
653
                    <input name="bigpond_minheartbeatinterval" type="text" class="formfld" id="bigpond_minheartbeatinterval" size="8" value="<?=htmlspecialchars($pconfig['bigpond_minheartbeatinterval']);?>">seconds<br>Setting this to a sensible value (e.g. 60 seconds) can protect against DoS attacks. </td>
654
                </tr>
655
		        <?php
656
				/* Wireless interface? */
657
				if (isset($wancfg['wireless']))
658
					wireless_config_print();
659
			?>
660
                <tr>
661
                  <td height="16" colspan="2" valign="top"></td>
662
                </tr>
663
                <tr>
664
                  <td valign="middle">&nbsp;</td>
665
                  <td class="vtable"> <input name="blockpriv" type="checkbox" id="blockpriv" value="yes" <?php if ($pconfig['blockpriv']) echo "checked"; ?>>
666
                    <strong>Block private networks</strong><br>
667
                    When set, this option blocks traffic from IP addresses that
668
                    are reserved for private<br>
669
                    networks as per RFC 1918 (10/8, 172.16/12, 192.168/16) as
670
                    well as loopback addresses<br>
671
                    (127/8). You should generally leave this option turned on,
672
                    unless your WAN network<br>
673
                    lies in such a private address space, too.</td>
674
                </tr>
675
                <tr>
676
                  <td valign="middle">&nbsp;</td>
677
                  <td class="vtable"> <input name="blockbogons" type="checkbox" id="blockbogons" value="yes" <?php if ($pconfig['blockbogons']) echo "checked"; ?>>
678
                    <strong>Block bogon networks</strong><br>
679
                    When set, this option blocks traffic from IP addresses that
680
                    are reserved (but not RFC 1918) or not yet assigned by IANA.<br>
681
                    Bogons are prefixes that should never appear in the Internet routing table, and obviously should not appear as the source address in any packets you receive.</td>
682
                <tr>
683
                  <td width="100" valign="top">&nbsp;</td>
684
                  <td> &nbsp;<br> <input name="Submit" type="submit" class="formbtn" value="Save" onClick="enable_change_pptp(true)&&enable_change(true)">
685
                  </td>
686
                </tr>
687
              </table>
688
</form>
689
<script language="JavaScript">
690
<!--
691
type_change();
692
//-->
693
</script>
694
<?php include("fend.inc"); ?>
695
</body>
696
</html>
(65-65/153)