summaryrefslogtreecommitdiffstats
path: root/usr/local/www/load_balancer_virtual_server_edit.php
diff options
context:
space:
mode:
authorBill Marquette <billm@pfsense.org>2008-08-28 21:21:50 +0000
committerBill Marquette <billm@pfsense.org>2008-08-28 21:21:50 +0000
commit0919224fbd27505f35b94f4dd8a8070ceac153aa (patch)
tree748065cc800cd91a30db55a0b657665dc084d9f5 /usr/local/www/load_balancer_virtual_server_edit.php
parent9557628b8ab7dafc01cb28173618d558280f2bb4 (diff)
downloadpfsense-0919224fbd27505f35b94f4dd8a8070ceac153aa.zip
pfsense-0919224fbd27505f35b94f4dd8a8070ceac153aa.tar.gz
Bring in relay options for inbound load balancer
More work pending, this seems to generate proper configs needs much more testing though
Diffstat (limited to 'usr/local/www/load_balancer_virtual_server_edit.php')
-rwxr-xr-xusr/local/www/load_balancer_virtual_server_edit.php91
1 files changed, 79 insertions, 12 deletions
diff --git a/usr/local/www/load_balancer_virtual_server_edit.php b/usr/local/www/load_balancer_virtual_server_edit.php
index e6c7f0e..07b7350 100755
--- a/usr/local/www/load_balancer_virtual_server_edit.php
+++ b/usr/local/www/load_balancer_virtual_server_edit.php
@@ -49,12 +49,10 @@ else
$id = $_GET['id'];
if (isset($id) && $a_vs[$id]) {
- $pconfig['ipaddr'] = $a_vs[$id]['ipaddr'];
- $pconfig['port'] = $a_vs[$id]['port'];
- $pconfig['pool'] = $a_vs[$id]['pool'];
- $pconfig['desc'] = $a_vs[$id]['desc'];
- $pconfig['name'] = $a_vs[$id]['name'];
- $pconfig['sitedown'] = $a_vs[$id]['sitedown'];
+ $pconfig = $a_vs[$id];
+} else {
+ // Sane defaults
+ $pconfig['mode'] = 'redirect';
}
$changedesc = "Load Balancer: Virtual Server: ";
@@ -65,8 +63,18 @@ if ($_POST) {
$pconfig = $_POST;
/* input validation */
- $reqdfields = explode(" ", "ipaddr name port");
- $reqdfieldsn = explode(",", "IP Address, Name, Port");
+ switch($pconfig['mode']) {
+ case "redirect": {
+ $reqdfields = explode(" ", "ipaddr name port mode");
+ $reqdfieldsn = explode(",", "IP Address, Name, Port, Mode");
+ break;
+ }
+ case "relay": {
+ $reqdfields = explode(" ", "ipaddr name port mode relay_protocol");
+ $reqdfieldsn = explode(",", "IP Address, Name, Port, Relay Protocol");
+ break;
+ }
+ }
do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors);
@@ -95,6 +103,8 @@ if ($_POST) {
update_if_changed("port", $vsent['port'], $_POST['port']);
update_if_changed("sitedown", $vsent['sitedown'], $_POST['sitedown']);
update_if_changed("ipaddr", $vsent['ipaddr'], $_POST['ipaddr']);
+ update_if_changed("mode", $vsent['mode'], $_POST['mode']);
+ update_if_changed("relay protocol", $vsent['relay_protocol'], $_POST['relay_protocol']);
if (isset($id) && $a_vs[$id])
$a_vs[$id] = $vsent;
@@ -119,11 +129,42 @@ include("head.inc");
?>
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
+<script src="/javascript/scriptaculous/prototype.js" type="text/javascript"></script>
+<script src="/javascript/scriptaculous/scriptaculous.js" type="text/javascript"></script>
+<script language="javascript" type="text/javascript">
+function updateRelay(m) {
+ switch (m) {
+ case "relay": {
+ $('relay_protocol').enable();
+ $('relay').appear();
+ break;
+ }
+ case "redirect": {
+ $('relay_protocol').disable();
+ $('relay').hide();
+ break;
+ }
+ }
+}
+
+document.observe("dom:loaded", function() {
+ // Setup some observers
+ $('redirect_mode').observe('click', function(){
+ updateRelay('redirect');
+ });
+ $('relay_mode').observe('click', function(){
+ updateRelay('relay');
+ });
+
+ // Go ahead and disable the relay stuff, we'll trigger
+ updateRelay("<?=$pconfig['mode'];?>");
+
+});
+
+</script>
<?php include("fbegin.inc"); ?>
<?php if ($input_errors) print_input_errors($input_errors); ?>
<form action="load_balancer_virtual_server_edit.php" method="post" name="iform" id="iform">
-<script type="text/javascript" language="javascript" src="pool.js">
-</script>
<table width="100%" border="0" cellpadding="6" cellspacing="0">
<tr align="left">
@@ -171,7 +212,7 @@ include("head.inc");
<td width="22%" valign="top" class="vncellreq">Fall Back Pool</td>
<td width="78%" class="vtable" colspan="2">
<select id="sitedown" name="sitedown">
- <option value=""<?="selected" ? $pconfig['sitedown'] == '' : ''?>>none</option>
+ <option value=""<?=$pconfig['sitedown'] == '' ? ' selected' : ''?>>none</option>
<?php
for ($i = 0; isset($config['load_balancer']['lbpool'][$i]); $i++) {
$selected = "";
@@ -185,9 +226,35 @@ include("head.inc");
</td>
</tr>
<tr align="left">
+ <td width="22%" valign="top" class="vncellreq">Mode</td>
+ <td width="78%" class="vtable" colspan="2">
+ <input id="redirect_mode" type="radio" name="mode" value="redirect"<?=$pconfig['mode'] == 'redirect' ? ' checked="checked"': ''?>> Redirect
+ <input id="relay_mode" type="radio" name="mode" value="relay"<?=$pconfig['mode'] == 'relay' ? ' checked="checked"': ''?>> Relay
+
+ <br>
+ </td>
+ </tr>
+ <tr id="relay" align="left" style="display:none;">
+ <td width="22%" valign="top" class="vncellreq">Relay Protocol</td>
+ <td width="78%" class="vtable" colspan="2">
+ <select id="relay_protocol" name="relay_protocol">
+ <?php
+ for ($i = 0; isset($config['load_balancer']['lbprotocol'][$i]); $i++) {
+ $selected = "";
+ if ( $config['load_balancer']['lbprotocol'][$i]['name'] == $pconfig['lbprotocol'] )
+ $selected = " SELECTED";
+ echo "<option value=\"{$config['load_balancer']['lbprotocol'][$i]['name']}\"{$selected}>{$config['load_balancer']['lbprotocol'][$i]['name']}</option>";
+ }
+ ?>
+ </select>
+ <br>
+ </td>
+ </tr>
+
+ <tr align="left">
<td align="left" valign="bottom">
<input name="Submit" type="submit" class="formbtn" value="Submit"><input type="button" class="formbtn" value="Cancel" onclick="history.back()">
- <?php if (isset($id) && $a_vs[$id]): ?>
+ <?php if (isset($id) && $a_vs[$id] && $_GET['act'] != 'dup'): ?>
<input name="id" type="hidden" value="<?=$id;?>">
<?php endif; ?>
</td>
OpenPOWER on IntegriCloud