diff options
Diffstat (limited to 'usr/local/www/interfaces.php')
-rwxr-xr-x | usr/local/www/interfaces.php | 182 |
1 files changed, 103 insertions, 79 deletions
diff --git a/usr/local/www/interfaces.php b/usr/local/www/interfaces.php index b4cc30b..675e29a 100755 --- a/usr/local/www/interfaces.php +++ b/usr/local/www/interfaces.php @@ -1,22 +1,22 @@ #!/usr/local/bin/php -<?php +<?php /* interfaces_wan.php part of m0n0wall (http://m0n0.ch/wall) - + Copyright (C) 2003-2004 Manuel Kasper <mk@neon1.net>. All rights reserved. - + Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - + 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - + 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE @@ -37,6 +37,10 @@ $optcfg = &$config['interfaces']['wan']; $pconfig['username'] = $config['pppoe']['username']; $pconfig['password'] = $config['pppoe']['password']; $pconfig['provider'] = $config['pppoe']['provider']; + +$pconfig['bandwidth'] = $config['bandwidth']; +$pconfig['bandwidthtype'] = $config['bandwidthtype']; + $pconfig['pppoe_dialondemand'] = $config['pppoe']['ondemand']; $pconfig['pppoe_idletimeout'] = $config['pppoe']['timeout']; @@ -114,7 +118,7 @@ if ($_POST) { $reqdfieldsn = explode(",", "BigPond username,BigPond password"); do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors); } - + if (($_POST['ipaddr'] && !is_ipaddr($_POST['ipaddr']))) { $input_errors[] = "A valid IP address must be specified."; } @@ -157,7 +161,7 @@ if ($_POST) { if ($_POST['mtu'] && (($_POST['mtu'] < 576) || ($_POST['mtu'] > 1500))) { $input_errors[] = "The MTU must be between 576 and 1500 bytes."; } - + /* Wireless interface? */ if (isset($optcfg['wireless'])) { $wi_input_errors = wireless_config_post(); @@ -167,10 +171,12 @@ if ($_POST) { } if (!$input_errors) { - + unset($wancfg['ipaddr']); unset($wancfg['subnet']); unset($wancfg['gateway']); + unset($wancfg['bandwidth']); + unset($wancfg['bandwidthtype']); unset($wancfg['dhcphostname']); unset($config['pppoe']['username']); unset($config['pppoe']['password']); @@ -189,7 +195,10 @@ if ($_POST) { unset($config['bigpond']['authserver']); unset($config['bigpond']['authdomain']); unset($config['bigpond']['minheartbeatinterval']); - + + $wancfg['bandwidth'] = $_POST['bandwidth']; + $wancfg['bandwidthtype'] = $_POST['bandwidthtype']; + if ($_POST['type'] == "Static") { $wancfg['ipaddr'] = $_POST['ipaddr']; $wancfg['subnet'] = $_POST['subnet']; @@ -221,13 +230,13 @@ if ($_POST) { $config['bigpond']['authdomain'] = $_POST['bigpond_authdomain']; $config['bigpond']['minheartbeatinterval'] = $_POST['bigpond_minheartbeatinterval']; } - + $wancfg['blockpriv'] = $_POST['blockpriv'] ? true : false; $wancfg['spoofmac'] = $_POST['spoofmac']; $wancfg['mtu'] = $_POST['mtu']; - + write_config(); - + $retval = 0; if (!file_exists($d_sysrebootreqd_path)) { config_lock(); @@ -402,105 +411,120 @@ function type_change(enable_change,enable_change_pptp) { <?php if ($savemsg) print_info_box($savemsg); ?> <form action="interfaces_wan.php" method="post" name="iform" id="iform"> <table width="100%" border="0" cellpadding="6" cellspacing="0"> - <tr> + <tr> <td valign="middle"><strong>Type</strong></td> <td> <select name="type" class="formfld" id="type" onchange="type_change()"> <?php $opts = split(" ", "Static DHCP PPPoE PPTP BigPond"); foreach ($opts as $opt): ?> - <option <?php if ($opt == $pconfig['type']) echo "selected";?>> + <option <?php if ($opt == $pconfig['type']) echo "selected";?>> <?=htmlspecialchars($opt);?> </option> <?php endforeach; ?> </select></td> </tr> - <tr> + <tr> <td colspan="2" valign="top" height="4"></td> </tr> - <tr> + <tr> <td colspan="2" valign="top" class="vnsepcell">General configuration</td> </tr> - <tr> + + <tr> + <td valign="top" class="vncell">Interface Bandwidth Speed</td> + <td class="vtable"> <input name="bandwidth" type="text" class="formfld" id="bandwidth" size="30" value="<?=htmlspecialchars($pconfig['bandwidth']);?>"> + <select name="bandwidthtype"> + <option value="<?=htmlspecialchars($pconfig['bandwidthtype']);?>"><?=htmlspecialchars($pconfig['bandwidthtype']);?></option> + <option value="b">bit/s</option> + <option value="Kb">Kilobit/s</option> + <option value="Mb">Megabit/s</option> + <option value="Gb">Gigabit/s</option> + </select> + <br> The bandwidth setting will define the speed of the interface for traffic shaping. + </td> + </tr> + + <tr> <td valign="top" class="vncell">MAC address</td> - <td class="vtable"> <input name="spoofmac" type="text" class="formfld" id="spoofmac" size="30" value="<?=htmlspecialchars($pconfig['spoofmac']);?>"> + <td class="vtable"> <input name="spoofmac" type="text" class="formfld" id="spoofmac" size="30" value="<?=htmlspecialchars($pconfig['spoofmac']);?>"> <br> - This field can be used to modify ("spoof") the MAC + This field can be used to modify ("spoof") the MAC address of the WAN interface<br> (may be required with some cable connections)<br> - Enter a MAC address in the following format: xx:xx:xx:xx:xx:xx + Enter a MAC address in the following format: xx:xx:xx:xx:xx:xx or leave blank</td> </tr> - <tr> + <tr> <td valign="top" class="vncell">MTU</td> - <td class="vtable"> <input name="mtu" type="text" class="formfld" id="mtu" size="8" value="<?=htmlspecialchars($pconfig['mtu']);?>"> + <td class="vtable"> <input name="mtu" type="text" class="formfld" id="mtu" size="8" value="<?=htmlspecialchars($pconfig['mtu']);?>"> <br> - If you enter a value in this field, then MSS clamping for - TCP connections to the value entered above minus 40 (TCP/IP - header size) will be in effect. If you leave this field blank, - an MTU of 1492 bytes for PPPoE and 1500 bytes for all other + If you enter a value in this field, then MSS clamping for + TCP connections to the value entered above minus 40 (TCP/IP + header size) will be in effect. If you leave this field blank, + an MTU of 1492 bytes for PPPoE and 1500 bytes for all other connection types will be assumed.</td> </tr> - <tr> + <tr> <td colspan="2" valign="top" height="16"></td> </tr> - <tr> + <tr> <td colspan="2" valign="top" class="vnsepcell">Static IP configuration</td> </tr> - <tr> + <tr> <td width="100" valign="top" class="vncellreq">IP address</td> <td class="vtable"> <input name="ipaddr" type="text" class="formfld" id="ipaddr" size="20" value="<?=htmlspecialchars($pconfig['ipaddr']);?>"> - / + / <select name="subnet" class="formfld" id="subnet"> <?php for ($i = 31; $i > 0; $i--): ?> - <option value="<?=$i;?>" <?php if ($i == $pconfig['subnet']) echo "selected"; ?>> + <option value="<?=$i;?>" <?php if ($i == $pconfig['subnet']) echo "selected"; ?>> <?=$i;?> </option> <?php endfor; ?> </select></td> </tr> - <tr> + <tr> <td valign="top" class="vncellreq">Gateway</td> - <td class="vtable"> <input name="gateway" type="text" class="formfld" id="gateway" size="20" value="<?=htmlspecialchars($pconfig['gateway']);?>"> + <td class="vtable"> <input name="gateway" type="text" class="formfld" id="gateway" size="20" value="<?=htmlspecialchars($pconfig['gateway']);?>"> </td> </tr> - <tr> + <tr> <td colspan="2" valign="top" height="16"></td> </tr> - <tr> + <tr> <td colspan="2" valign="top" class="vnsepcell">DHCP client configuration</td> </tr> - <tr> + <tr> <td valign="top" class="vncell">Hostname</td> <td class="vtable"> <input name="dhcphostname" type="text" class="formfld" id="dhcphostname" size="40" value="<?=htmlspecialchars($pconfig['dhcphostname']);?>"> <br> - The value in this field is sent as the DHCP client identifier - and hostname when requesting a DHCP lease. Some ISPs may require + The value in this field is sent as the DHCP client identifier + and hostname when requesting a DHCP lease. Some ISPs may require this (for client identification).</td> </tr> - <tr> + <tr> <td colspan="2" valign="top" height="16"></td> </tr> - <tr> + <tr> <td colspan="2" valign="top" class="vnsepcell">PPPoE configuration</td> </tr> - <tr> + <tr> <td valign="top" class="vncellreq">Username</td> - <td class="vtable"><input name="username" type="text" class="formfld" id="username" size="20" value="<?=htmlspecialchars($pconfig['username']);?>"> + <td class="vtable"><input name="username" type="text" class="formfld" id="username" size="20" value="<?=htmlspecialchars($pconfig['username']);?>"> </td> </tr> - <tr> + <tr> <td valign="top" class="vncellreq">Password</td> - <td class="vtable"><input name="password" type="text" class="formfld" id="password" size="20" value="<?=htmlspecialchars($pconfig['password']);?>"> + <td class="vtable"><input name="password" type="text" class="formfld" id="password" size="20" value="<?=htmlspecialchars($pconfig['password']);?>"> </td> </tr> - <tr> + <tr> <td valign="top" class="vncell">Service name</td> - <td class="vtable"><input name="provider" type="text" class="formfld" id="provider" size="20" value="<?=htmlspecialchars($pconfig['provider']);?>"> - <br> <span class="vexpl">Hint: this field can usually be left + <td class="vtable"><input name="provider" type="text" class="formfld" id="provider" size="20" value="<?=htmlspecialchars($pconfig['provider']);?>"> + <br> <span class="vexpl">Hint: this field can usually be left empty</span></td> </tr> - <tr> + <tr> <td valign="top" class="vncell">Dial on demand</td> - <td class="vtable"><input name="pppoe_dialondemand" type="checkbox" id="pppoe_dialondemand" value="enable" <?php if ($pconfig['pppoe_dialondemand'] == "enable") echo "checked"; ?> onClick="enable_change(false)" > + <td class="vtable"><input name="pppoe_dialondemand" type="checkbox" id="pppoe_dialondemand" value="enable" <?php if ($pconfig['pppoe_dialondemand'] == "enable") echo "checked"; ?> onClick="enable_change(false)" > <strong>Enable Dial-On-Demand mode</strong><br> 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> </tr> @@ -511,42 +535,42 @@ function type_change(enable_change,enable_change_pptp) { 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> </tr> - <tr> + <tr> <td colspan="2" valign="top" height="16"></td> </tr> - <tr> + <tr> <td colspan="2" valign="top" class="vnsepcell">PPTP configuration</td> </tr> - <tr> + <tr> <td valign="top" class="vncellreq">Username</td> - <td class="vtable"><input name="pptp_username" type="text" class="formfld" id="pptp_username" size="20" value="<?=htmlspecialchars($pconfig['pptp_username']);?>"> + <td class="vtable"><input name="pptp_username" type="text" class="formfld" id="pptp_username" size="20" value="<?=htmlspecialchars($pconfig['pptp_username']);?>"> </td> </tr> - <tr> + <tr> <td valign="top" class="vncellreq">Password</td> - <td class="vtable"><input name="pptp_password" type="text" class="formfld" id="pptp_password" size="20" value="<?=htmlspecialchars($pconfig['pptp_password']);?>"> + <td class="vtable"><input name="pptp_password" type="text" class="formfld" id="pptp_password" size="20" value="<?=htmlspecialchars($pconfig['pptp_password']);?>"> </td> </tr> - <tr> + <tr> <td width="100" valign="top" class="vncellreq">Local IP address</td> <td class="vtable"> <input name="pptp_local" type="text" class="formfld" id="pptp_local" size="20" value="<?=htmlspecialchars($pconfig['pptp_local']);?>"> - / + / <select name="pptp_subnet" class="formfld" id="pptp_subnet"> <?php for ($i = 31; $i > 0; $i--): ?> - <option value="<?=$i;?>" <?php if ($i == $pconfig['pptp_subnet']) echo "selected"; ?>> + <option value="<?=$i;?>" <?php if ($i == $pconfig['pptp_subnet']) echo "selected"; ?>> <?=$i;?> </option> <?php endfor; ?> </select></td> </tr> - <tr> + <tr> <td width="100" valign="top" class="vncellreq">Remote IP address</td> - <td class="vtable"> <input name="pptp_remote" type="text" class="formfld" id="pptp_remote" size="20" value="<?=htmlspecialchars($pconfig['pptp_remote']);?>"> + <td class="vtable"> <input name="pptp_remote" type="text" class="formfld" id="pptp_remote" size="20" value="<?=htmlspecialchars($pconfig['pptp_remote']);?>"> </td> </tr> - <tr> + <tr> <td valign="top" class="vncell">Dial on demand</td> - <td class="vtable"><input name="pptp_dialondemand" type="checkbox" id="pptp_dialondemand" value="enable" <?php if ($pconfig['pptp_dialondemand'] == "enable") echo "checked"; ?> onClick="enable_change_pptp(false)" > + <td class="vtable"><input name="pptp_dialondemand" type="checkbox" id="pptp_dialondemand" value="enable" <?php if ($pconfig['pptp_dialondemand'] == "enable") echo "checked"; ?> onClick="enable_change_pptp(false)" > <strong>Enable Dial-On-Demand mode</strong><br> 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> </tr> @@ -557,29 +581,29 @@ function type_change(enable_change,enable_change_pptp) { 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> </tr> - <tr> + <tr> <td colspan="2" valign="top" height="16"></td> </tr> - <tr> + <tr> <td colspan="2" valign="top" class="vnsepcell">BigPond Cable configuration</td> </tr> - <tr> + <tr> <td valign="top" class="vncellreq">Username</td> - <td class="vtable"><input name="bigpond_username" type="text" class="formfld" id="bigpond_username" size="20" value="<?=htmlspecialchars($pconfig['bigpond_username']);?>"> + <td class="vtable"><input name="bigpond_username" type="text" class="formfld" id="bigpond_username" size="20" value="<?=htmlspecialchars($pconfig['bigpond_username']);?>"> </td> </tr> - <tr> + <tr> <td valign="top" class="vncellreq">Password</td> - <td class="vtable"><input name="bigpond_password" type="text" class="formfld" id="bigpond_password" size="20" value="<?=htmlspecialchars($pconfig['bigpond_password']);?>"> + <td class="vtable"><input name="bigpond_password" type="text" class="formfld" id="bigpond_password" size="20" value="<?=htmlspecialchars($pconfig['bigpond_password']);?>"> </td> </tr> - <tr> + <tr> <td valign="top" class="vncell">Authentication server</td> <td class="vtable"><input name="bigpond_authserver" type="text" class="formfld" id="bigpond_authserver" size="20" value="<?=htmlspecialchars($pconfig['bigpond_authserver']);?>"> <br> <span class="vexpl">If this field is left empty, the default ("dce-server") is used. </span></td> </tr> - <tr> + <tr> <td valign="top" class="vncell">Authentication domain</td> <td class="vtable"><input name="bigpond_authdomain" type="text" class="formfld" id="bigpond_authdomain" size="20" value="<?=htmlspecialchars($pconfig['bigpond_authdomain']);?>"> <br> @@ -598,24 +622,24 @@ function type_change(enable_change,enable_change_pptp) { if (isset($optcfg['wireless'])) wireless_config_print(); ?> - <tr> + <tr> <td height="16" colspan="2" valign="top"></td> </tr> - <tr> + <tr> <td valign="middle"> </td> - <td class="vtable"> <input name="blockpriv" type="checkbox" id="blockpriv" value="yes" <?php if ($pconfig['blockpriv'] == "yes") echo "checked"; ?>> + <td class="vtable"> <input name="blockpriv" type="checkbox" id="blockpriv" value="yes" <?php if ($pconfig['blockpriv'] == "yes") echo "checked"; ?>> <strong>Block private networks</strong><br> - When set, this option blocks traffic from IP addresses that + When set, this option blocks traffic from IP addresses that are reserved for private<br> - networks as per RFC 1918 (10/8, 172.16/12, 192.168/16) as + networks as per RFC 1918 (10/8, 172.16/12, 192.168/16) as well as loopback addresses<br> - (127/8). You should generally leave this option turned on, + (127/8). You should generally leave this option turned on, unless your WAN network<br> lies in such a private address space, too.</td> </tr> - <tr> + <tr> <td width="100" valign="top"> </td> - <td> <br> <input name="Submit" type="submit" class="formbtn" value="Save" onClick="enable_change_pptp(true)&&enable_change(true)"> + <td> <br> <input name="Submit" type="submit" class="formbtn" value="Save" onClick="enable_change_pptp(true)&&enable_change(true)"> </td> </tr> </table> |