diff options
Diffstat (limited to 'usr/local/www/services_proxyarp_edit.php')
-rwxr-xr-x | usr/local/www/services_proxyarp_edit.php | 283 |
1 files changed, 0 insertions, 283 deletions
diff --git a/usr/local/www/services_proxyarp_edit.php b/usr/local/www/services_proxyarp_edit.php deleted file mode 100755 index 55bc239..0000000 --- a/usr/local/www/services_proxyarp_edit.php +++ /dev/null @@ -1,283 +0,0 @@ -<?php -/* $Id$ */ -/* - services_proxyarp_edit.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 - AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, - OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. -*/ -/* - pfSense_MODULE: proxyarp -*/ - -##|+PRIV -##|*IDENT=page-services-proxyarp-edit -##|*NAME=Services: Proxy ARP: Edit page -##|*DESCR=Allow access to the 'Services: Proxy ARP: Edit' page. -##|*MATCH=services_proxyarp_edit.php* -##|-PRIV - -function proxyarpcmp($a, $b) { - if (isset($a['network'])) - list($ast,$asn) = explode("/", $a['network']); - else if (isset($a['range'])) { - $ast = $a['range']['from']; - $asn = 32; - } - if (isset($b['network'])) - list($bst,$bsn) = explode("/", $b['network']); - else if (isset($b['range'])) { - $bst = $b['range']['from']; - $bsn = 32; - } - if (ipcmp($ast, $bst) == 0) - return ($asn - $bsn); - else - return ipcmp($ast, $bst); -} - -function proxyarp_sort() { - global $config; - - usort($config['proxyarp']['proxyarpnet'], "proxyarpcmp"); -} - -require("guiconfig.inc"); - -if (!is_array($config['proxyarp']['proxyarpnet'])) { - $config['proxyarp']['proxyarpnet'] = array(); -} -proxyarp_sort(); -$a_proxyarp = &$config['proxyarp']['proxyarpnet']; - -$id = $_GET['id']; -if (isset($_POST['id'])) - $id = $_POST['id']; - -if (isset($id) && $a_proxyarp[$id]) { - if ($a_proxyarp[$id]['interface']) - $pconfig['interface'] = $a_proxyarp[$id]['interface']; - else - $pconfig['interface'] = "wan"; - if (isset($a_proxyarp[$id]['network'])) - list($pconfig['subnet'], $pconfig['subnet_bits']) = explode("/", $a_proxyarp[$id]['network']); - else if (isset($a_proxyarp[$id]['range'])) { - $pconfig['range_from'] = $a_proxyarp[$id]['range']['from']; - $pconfig['range_to'] = $a_proxyarp[$id]['range']['to']; - } - $pconfig['descr'] = $a_proxyarp[$id]['descr']; -} else { - $pconfig['interface'] = "wan"; - $pconfig['subnet_bits'] = 32; -} - -if ($_POST) { - - unset($input_errors); - $pconfig = $_POST; - - /* input validation */ - if ($_POST['type'] == "single") { - $reqdfields = explode(" ", "subnet"); - $reqdfieldsn = explode(",", "Address"); - $_POST['subnet_bits'] = 32; - } else if ($_POST['type'] == "network") { - $reqdfields = explode(" ", "subnet subnet_bits"); - $reqdfieldsn = explode(",", "Network,Network mask"); - } else if ($_POST['type'] == "range") { - $reqdfields = explode(" ", "range_from range_to"); - $reqdfieldsn = explode(",", "Range start,Range end"); - } - - do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors); - - if ((($_POST['type'] != "range") && $_POST['subnet'] && !is_ipaddr($_POST['subnet']))) { - $input_errors[] = "A valid address must be specified."; - } - if ((($_POST['type'] == "range") && $_POST['range_from'] && !is_ipaddr($_POST['range_from']))) { - $input_errors[] = "A valid range start must be specified."; - } - if ((($_POST['type'] == "range") && $_POST['range_to'] && !is_ipaddr($_POST['range_to']))) { - $input_errors[] = "A valid range end must be specified."; - } - - /* check for overlaps */ - foreach ($a_proxyarp as $arpent) { - if (isset($id) && ($a_proxyarp[$id]) && ($a_proxyarp[$id] === $arpent)) - continue; - - if (($_POST['type'] == "range") && isset($arpent['range'])) { - if (($_POST['range_from'] == $arpent['range']['from']) && - ($_POST['range_to'] == $arpent['range']['to'])) { - $input_errors[] = "This range already exists."; - break; - } - } else if (isset($arpent['network'])) { - if (($arpent['network'] == "{$_POST['subnet']}/{$_POST['subnet_bits']}")) { - $input_errors[] = "This network already exists."; - break; - } - } - } - - if (!$input_errors) { - $arpent = array(); - $arpent['interface'] = $_POST['interface']; - if ($_POST['type'] == "range") { - $arpent['range']['from'] = $_POST['range_from']; - $arpent['range']['to'] = $_POST['range_to']; - } else - $arpent['network'] = $_POST['subnet'] . "/" . $_POST['subnet_bits']; - $arpent['descr'] = $_POST['descr']; - - proxyarp_sort(); - if (isset($id) && $a_proxyarp[$id]) - $a_proxyarp[$id] = $arpent; - else - $a_proxyarp[] = $arpent; - - mark_subsystem_dirty('proxyarp'); - - write_config(); - - header("Location: services_proxyarp.php"); - exit; - } -} - -$pgtitle = array("Services","Proxy ARP","Edit"); -include("head.inc"); - -?> - -<script language="JavaScript"> -<!-- -function typesel_change() { - switch (document.iform.type.selectedIndex) { - case 0: // single - document.iform.subnet.disabled = 0; - document.iform.subnet_bits.disabled = 1; - document.iform.range_from.disabled = 1; - document.iform.range_to.disabled = 1; - break; - case 1: // network - document.iform.subnet.disabled = 0; - document.iform.subnet_bits.disabled = 0; - document.iform.range_from.disabled = 1; - document.iform.range_to.disabled = 1; - break; - case 2: // range - document.iform.subnet.disabled = 1; - document.iform.subnet_bits.disabled = 1; - document.iform.range_from.disabled = 0; - document.iform.range_to.disabled = 0; - break; - } -} -//--> -</script> - -<body link="#0000CC" vlink="#0000CC" alink="#0000CC"> -<?php include("fbegin.inc"); ?> -<?php if ($input_errors) print_input_errors($input_errors); ?> - <form action="services_proxyarp_edit.php" method="post" name="iform" id="iform"> - <table width="100%" border="0" cellpadding="6" cellspacing="0"> - <tr> - <td width="22%" valign="top" class="vncellreq">Interface</td> - <td width="78%" class="vtable"> - <select name="interface" class="formselect"> - <?php - $interfaces = get_configured_interface_with_descr(); - foreach ($interfaces as $iface => $ifacename): ?> - <option value="<?=$iface;?>" <?php if ($iface == $pconfig['interface']) echo "selected"; ?>> - <?=htmlspecialchars($ifacename);?> - </option> - <?php endforeach; ?> - </select> </td> - </tr> - <tr> - <td valign="top" class="vncellreq">Network</td> - <td class="vtable"> - <table border="0" cellspacing="0" cellpadding="0"> - <tr> - <td>Type: </td> - <td><select name="type" class="formselect" onChange="typesel_change()"> - <option value="single" <?php if (!$pconfig['range_from'] && $pconfig['subnet_bits'] == 32) echo "selected"; ?>> - Single address</option> - <option value="network" <?php if (!$pconfig['range_from'] && $pconfig['subnet_bits'] != 32) echo "selected"; ?>> - Network</option> - <option value="range" <?php if ($pconfig['range_from']) echo "selected"; ?>> - Range</option> - </select></td> - </tr> - <tr> - <td>Address: </td> - <td><input name="subnet" type="text" class="formfld unknown" id="subnet" size="20" value="<?=htmlspecialchars($pconfig['subnet']);?>"> - / - <select name="subnet_bits" class="formselect" id="select"> - <?php for ($i = 31; $i >= 0; $i--): ?> - <option value="<?=$i;?>" <?php if ($i == $pconfig['subnet_bits']) echo "selected"; ?>> - <?=$i;?> - </option> - <?php endfor; ?> - </select> - </td> - </tr> - <tr> - <td>Range: </td> - <td><input name="range_from" type="text" class="formfld unknown" id="range_from" size="20" value="<?=htmlspecialchars($pconfig['range_from']);?>"> -- - <input name="range_to" type="text" class="formfld unknown" id="range_to" size="20" value="<?=htmlspecialchars($pconfig['range_to']);?>"> - </td> - </tr> - </table> - </td> - </tr> - <tr> - <td width="22%" valign="top" class="vncell">Description</td> - <td width="78%" class="vtable"> - <input name="descr" type="text" class="formfld unknown" id="descr" size="40" value="<?=htmlspecialchars($pconfig['descr']);?>"> - <br> <span class="vexpl">You may enter a description here - for your reference (not parsed).</span></td> - </tr> - <tr> - <td width="22%" valign="top"> </td> - <td width="78%"> - <input name="Submit" type="submit" class="formbtn" value="Save"> <input class="formbtn" type="button" value="Cancel" onclick="history.back()"> - <?php if (isset($id) && $a_proxyarp[$id]): ?> - <input name="id" type="hidden" value="<?=$id;?>"> - <?php endif; ?> - </td> - </tr> - </table> -</form> -<script language="JavaScript"> -<!-- -typesel_change(); -//--> -</script> -<?php include("fend.inc"); ?> -</body> -</html> |