Project

General

Profile

Download (19.4 KB) Statistics
| Branch: | Tag: | Revision:
1 d173230c Seth Mos
<?php 
2 124aee67 Chris Buechler
/* $Id$ */
3 d173230c Seth Mos
/*
4
	system_gateways_edit.php
5
	part of pfSense (http://pfsense.com)
6
	
7 6216690b smos
	Copyright (C) 2010 Seth Mos <seth.mos@dds.nl>.
8 d173230c Seth Mos
	All rights reserved.
9
	
10
	Redistribution and use in source and binary forms, with or without
11
	modification, are permitted provided that the following conditions are met:
12
	
13
	1. Redistributions of source code must retain the above copyright notice,
14
	   this list of conditions and the following disclaimer.
15
	
16
	2. Redistributions in binary form must reproduce the above copyright
17
	   notice, this list of conditions and the following disclaimer in the
18
	   documentation and/or other materials provided with the distribution.
19
	
20
	THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
21
	INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
22
	AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
23
	AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
24
	OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25
	SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26
	INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27
	CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28
	ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29
	POSSIBILITY OF SUCH DAMAGE.
30
*/
31 1d333258 Scott Ullrich
/*
32
	pfSense_MODULE:	routing
33
*/
34 d173230c Seth Mos
35 6b07c15a Matthew Grooms
##|+PRIV
36
##|*IDENT=page-system-gateways-editgateway
37
##|*NAME=System: Gateways: Edit Gateway page
38
##|*DESCR=Allow access to the 'System: Gateways: Edit Gateway' page.
39
##|*MATCH=system_gateways_edit.php*
40
##|-PRIV
41
42 124aee67 Chris Buechler
require("guiconfig.inc");
43 4666b787 Ermal Lu?i
require("pkg-utils.inc");
44 d173230c Seth Mos
45 99c61352 Ermal
$a_gateways = return_gateways_array(true);
46 87f0be87 Chris Buechler
$a_gateways_arr = array();
47
foreach($a_gateways as $gw) {
48
	$a_gateways_arr[] = $gw;
49
}
50
$a_gateways = $a_gateways_arr;
51 d173230c Seth Mos
52 616e1956 Seth Mos
if (!is_array($config['gateways']['gateway_item']))
53
        $config['gateways']['gateway_item'] = array();
54
        
55
$a_gateway_item = &$config['gateways']['gateway_item'];
56
57 87f0be87 Chris Buechler
$id = $_GET['id'];
58
if (isset($_POST['id']))
59 d173230c Seth Mos
	$id = $_POST['id'];
60
61
if (isset($_GET['dup'])) {
62
	$id = $_GET['dup'];
63
}
64
65
if (isset($id) && $a_gateways[$id]) {
66 bb849003 Ermal
	$pconfig = array();
67 e90db2b4 Ermal Lu?i
	$pconfig['name'] = $a_gateways[$id]['name'];
68 5f53260a Ermal
	$pconfig['weight'] = $a_gateways[$id]['weight'];
69 e90db2b4 Ermal Lu?i
	$pconfig['interface'] = $a_gateways[$id]['interface'];
70 883c53c9 Ermal Lu?i
	$pconfig['friendlyiface'] = $a_gateways[$id]['friendlyiface'];
71 d44d26c1 Ermal
	if (isset($a_gateways[$id]['dynamic']))
72
		$pconfig['dynamic'] = true;
73
	$pconfig['gateway'] = $a_gateways[$id]['gateway'];
74 883c53c9 Ermal Lu?i
	$pconfig['defaultgw'] = isset($a_gateways[$id]['defaultgw']);
75 023920e7 Ermal
	$pconfig['latencylow'] = $a_gateway_item[$id]['latencylow'];
76
        $pconfig['latencyhigh'] = $a_gateway_item[$id]['latencyhigh'];
77
        $pconfig['losslow'] = $a_gateway_item[$id]['losslow'];
78
        $pconfig['losshigh'] = $a_gateway_item[$id]['losshigh'];
79
        $pconfig['down'] = $a_gateway_item[$id]['down'];
80 99c61352 Ermal
	$pconfig['monitor'] = $a_gateways[$id]['monitor'];
81 e90db2b4 Ermal Lu?i
	$pconfig['descr'] = $a_gateways[$id]['descr'];
82
	$pconfig['attribute'] = $a_gateways[$id]['attribute'];
83 d173230c Seth Mos
}
84
85 124aee67 Chris Buechler
if (isset($_GET['dup'])) {
86 d173230c Seth Mos
	unset($id);
87 124aee67 Chris Buechler
	unset($pconfig['attribute']);
88
}
89 d173230c Seth Mos
90
if ($_POST) {
91
92
	unset($input_errors);
93
94
	/* input validation */
95 d44d26c1 Ermal
	$reqdfields = explode(" ", "name interface");
96
	$reqdfieldsn = array(gettext("Name"), gettext("Interface"));
97 883c53c9 Ermal Lu?i
98 d173230c Seth Mos
	do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors);
99 883c53c9 Ermal Lu?i
100 d173230c Seth Mos
	if (! isset($_POST['name'])) {
101
		$input_errors[] = "A valid gateway name must be specified.";
102
	}
103 31ace93c Seth Mos
	if (! is_validaliasname($_POST['name'])) {
104 df152a88 Carlos Eduardo Ramos
		$input_errors[] = gettext("The gateway name must not contain invalid characters.");
105 31ace93c Seth Mos
	}
106 87f0be87 Chris Buechler
	/* skip system gateways which have been automatically added */
107 d52b71c7 Ermal Lu?i
	if (($_POST['gateway'] && (!is_ipaddr($_POST['gateway'])) && ($_POST['attribute'] != "system")) && ($_POST['gateway'] != "dynamic")) {
108 df152a88 Carlos Eduardo Ramos
		$input_errors[] = gettext("A valid gateway IP address must be specified.");
109 87f0be87 Chris Buechler
	}
110 15a13dab Scott Ullrich
111 d44d26c1 Ermal
	if ($_POST['gateway'] && (is_ipaddr($_POST['gateway'])) && !$_REQUEST['isAjax']) {
112
		if (!empty($config['interfaces'][$_POST['interface']]['ipaddr'])) {
113 78ae2b14 Ermal
			if (is_ipaddr($config['interfaces'][$_POST['interface']]['ipaddr']) && (empty($_POST['gateway']) || $_POST['gateway'] == "dynamic"))
114 d44d26c1 Ermal
				$input_errors[] = gettext("Dynamic gateway values cannot be specified for interfaces with a static ip configuration.");
115
		}
116 b29b1a33 Chris Buechler
		$parent_ip = get_interface_ip($_POST['interface']);
117 e227df57 Ermal Lu?i
		if (is_ipaddr($parent_ip)) {
118
			$parent_sn = get_interface_subnet($_POST['interface']);
119
			if(!ip_in_subnet($_POST['gateway'], gen_subnet($parent_ip, $parent_sn) . "/" . $parent_sn)) {
120 181b29ca Vinicius Coque
				$input_errors[] = sprintf(gettext("The gateway address %s does not lie within the chosen interface's subnet."), $_POST['gateway']);
121 e227df57 Ermal Lu?i
			}
122 e7d3b8f4 Seth Mos
		}
123
	}
124 883c53c9 Ermal Lu?i
	if (($_POST['monitor'] <> "") && !is_ipaddr($_POST['monitor']) && $_POST['monitor'] != "dynamic") {
125 df152a88 Carlos Eduardo Ramos
		$input_errors[] = gettext("A valid monitor IP address must be specified.");
126 d173230c Seth Mos
	}
127
128 8b060357 Seth Mos
	if (isset($_POST['name'])) {
129 31ace93c Seth Mos
		/* check for overlaps */
130
		foreach ($a_gateways as $gateway) {
131 2328dcc5 Seth Mos
			if (isset($id) && ($a_gateways[$id]) && ($a_gateways[$id] === $gateway)) {
132 23fafd14 Ermal
				if ($gateway['name'] != $_POST['name'])
133
					$input_errors[] = gettext("Changing name on a gateway is not allowed because it can leave stale gateways around.");
134 31ace93c Seth Mos
				continue;
135
			}
136 2328dcc5 Seth Mos
			if($_POST['name'] <> "") {
137 883c53c9 Ermal Lu?i
				if (($gateway['name'] <> "") && ($_POST['name'] == $gateway['name']) && ($gateway['attribute'] != "system")) {
138 0e94685b Renato Botelho
					$input_errors[] = sprintf(gettext('The gateway name "%s" already exists.'), $_POST['name']);
139 2328dcc5 Seth Mos
					break;
140
				}
141
			}
142
			if(is_ipaddr($_POST['gateway'])) {
143 883c53c9 Ermal Lu?i
				if (($gateway['gateway'] <> "") && ($_POST['gateway'] == $gateway['gateway']) && ($gateway['attribute'] != "system")) {
144 0e94685b Renato Botelho
					$input_errors[] = sprintf(gettext('The gateway IP address "%s" already exists.'), $_POST['gateway']);
145 2328dcc5 Seth Mos
					break;
146
				}
147 31ace93c Seth Mos
			}
148 2328dcc5 Seth Mos
			if(is_ipaddr($_POST['monitor'])) {
149 883c53c9 Ermal Lu?i
				if (($gateway['monitor'] <> "") && ($_POST['monitor'] == $gateway['monitor']) && ($gateway['attribute'] != "system")) {
150 0e94685b Renato Botelho
					$input_errors[] = sprintf(gettext('The monitor IP address "%s" is already in use. You must choose a different monitor IP.'), $_POST['monitor']);
151 2328dcc5 Seth Mos
					break;
152
				}
153 31ace93c Seth Mos
			}
154 d173230c Seth Mos
		}
155
	}
156
157 023920e7 Ermal
	/* input validation */
158
        if($_POST['latencylow']) {
159
                if (! is_numeric($_POST['latencylow'])) {
160
                        $input_errors[] = gettext("The low latency watermark needs to be a numeric value.");
161
                }
162
        }
163
164
        if($_POST['latencyhigh']) {
165
                if (! is_numeric($_POST['latencyhigh'])) {
166
                        $input_errors[] = gettext("The high latency watermark needs to be a numeric value.");
167
                }
168
        }
169
        if($_POST['losslow']) {
170
                if (! is_numeric($_POST['losslow'])) {
171
                        $input_errors[] = gettext("The low loss watermark needs to be a numeric value.");
172
                }
173
        }
174
        if($_POST['losshigh']) {
175
                if (! is_numeric($_POST['losshigh'])) {
176
                        $input_errors[] = gettext("The high loss watermark needs to be a numeric value.");
177
                }
178
        }
179
180
        if(($_POST['latencylow']) && ($_POST['latencyhigh'])){
181
                if(($_POST['latencylow'] > $_POST['latencyhigh'])) {
182
                        $input_errors[] = gettext("The High latency watermark needs to be higher then the low latency watermark");
183
                }
184
        }
185
186
        if(($_POST['losslow']) && ($_POST['losshigh'])){
187
                if($_POST['losslow'] > $_POST['losshigh']) {
188
                        $input_errors[] = gettext("The High packet loss watermark needs to be higher then the low packet loss watermark");
189
                }
190
        }
191
	if($_POST['down']) {
192
                if (! is_numeric($_POST['down']) || $_POST['down'] < 1) {
193
                        $input_errors[] = gettext("The low latency watermark needs to be a numeric value.");
194
                }
195
        }
196
197 d173230c Seth Mos
	if (!$input_errors) {
198 d44d26c1 Ermal
		if (!(($_POST['weight'] && $_POST['weight'] > 1) || $_POST['latencylow'] || $_POST['latencyhigh'] ||
199 c568e682 Ermal
		    $_POST['losslow'] || $_POST['losshigh'] || $_POST['down'] ||
200
		    ($_POST['defaultgw'] && !$pconfig['defaultgw']) || (!$_POST['defaultgw'] && $pconfig['defaultgw']) ||
201
		    (empty($_POST['monitor']) || (!empty($_POST['gateway']) && $_POST['gateway'] != "dynamic")) ||
202
		    (empty($_POST['monitor']) || (!empty($_POST['monitor']) && $_POST['monitor'] != "dynamic")))) {
203
			if (isset($id) && $a_gateway_item[$id])
204
				unset($a_gateway_item[$id]);
205
			write_config();
206 d44d26c1 Ermal
			header("Location: system_gateways.php");
207
			exit;
208
		}
209
210
211 c6d1c7de Ermal
		$reloadif = false;
212 d44d26c1 Ermal
		$gateway = array();
213
214
		if (empty($_POST['interface']))
215
			$gateway['interface'] = $pconfig['friendlyiface'];
216
		else
217 3befe730 Ermal
			$gateway['interface'] = $_POST['interface'];
218 d44d26c1 Ermal
		if (is_ipaddr($_POST['gateway']))
219
			$gateway['gateway'] = $_POST['gateway'];
220
		else
221
			$gateway['gateway'] = "dynamic";
222
		$gateway['name'] = $_POST['name'];
223
		$gateway['weight'] = $_POST['weight'];
224
		$gateway['descr'] = $_POST['descr'];
225
		if (is_ipaddr($_POST['monitor']))
226
			$gateway['monitor'] = $_POST['monitor'];
227
228
		if ($_POST['defaultgw'] == "yes" || $_POST['defaultgw'] == "on") {
229
			$i = 0;
230
			foreach($a_gateway_item as $gw) {
231
				unset($config['gateways']['gateway_item'][$i]['defaultgw']);
232 78ae2b14 Ermal
				if ($gw['interface'] != $_POST['interface'])
233
					$reloadif = true;
234 d44d26c1 Ermal
				$i++;
235 bb849003 Ermal
			}
236 d44d26c1 Ermal
			$gateway['defaultgw'] = true;
237 124aee67 Chris Buechler
		}
238 d44d26c1 Ermal
239
		if ($_POST['latencylow'])
240
			$gateway['latencylow'] = $_POST['latencylow'];
241
		if ($_POST['latencyhigh'])
242
               		$gateway['latencyhigh'] = $_POST['latencyhigh'];
243
		if ($_POST['losslow'])
244
              			$gateway['losslow'] = $_POST['losslow'];
245
		if ($_POST['losshigh'])
246
               		$gateway['losshigh'] = $_POST['losshigh'];
247
		if ($_POST['down'])
248
               		$gateway['down'] = $_POST['down'];
249
250
		/* when saving the manual gateway we use the attribute which has the corresponding id */
251
		if (isset($id) && $a_gateway_item[$id])
252
			$a_gateway_item[$id] = $gateway;
253
		else
254
			$a_gateway_item[] = $gateway;
255
256 a368a026 Ermal Lu?i
		mark_subsystem_dirty('staticroutes');
257 d44d26c1 Ermal
	
258 d173230c Seth Mos
		write_config();
259 d44d26c1 Ermal
260 ad862220 Charlie
		if($_REQUEST['isAjax']) {
261
			echo $_POST['name'];
262
			exit;
263 c0f5182c Ermal Lu?i
		} else if ($reloadif == true)
264 99c61352 Ermal
			send_event("interface reconfigure {$_POST['interface']}");
265 ad862220 Charlie
		
266 d173230c Seth Mos
		header("Location: system_gateways.php");
267
		exit;
268 ea939fc3 Ermal
	} else {
269 883c53c9 Ermal Lu?i
		$pconfig = $_POST;
270 ea939fc3 Ermal
		if (empty($_POST['friendlyiface']))
271
			$pconfig['friendlyiface'] = $_POST['interface'];
272
	}
273 d173230c Seth Mos
}
274
275 2328dcc5 Seth Mos
276 df152a88 Carlos Eduardo Ramos
$pgtitle = array(gettext("System"),gettext("Gateways"),gettext("Edit gateway"));
277 02ca24c9 jim-p
$statusurl = "status_gateways.php";
278
279 d173230c Seth Mos
include("head.inc");
280
281
?>
282
283
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
284
<?php include("fbegin.inc"); ?>
285 883c53c9 Ermal Lu?i
<script language="JavaScript">
286 023920e7 Ermal
function show_advanced_gateway() {
287
        document.getElementById("showadvgatewaybox").innerHTML='';
288
        aodiv = document.getElementById('showgatewayadv');
289
        aodiv.style.display = "block";
290
}
291 883c53c9 Ermal Lu?i
</script>
292 d173230c Seth Mos
<?php if ($input_errors) print_input_errors($input_errors); ?>
293
            <form action="system_gateways_edit.php" method="post" name="iform" id="iform">
294 124aee67 Chris Buechler
	<?php
295 e9df5769 Seth Mos
296
	/* If this is a system gateway we need this var */
297 124aee67 Chris Buechler
	if(($pconfig['attribute'] == "system") || is_numeric($pconfig['attribute'])) {
298
		echo "<input type='hidden' name='attribute' id='attribute' value='{$pconfig['attribute']}' >\n";
299
	}
300 883c53c9 Ermal Lu?i
	echo "<input type='hidden' name='friendlyiface' id='friendlyiface' value='{$pconfig['friendlyiface']}' >\n";
301 124aee67 Chris Buechler
	?>
302 d173230c Seth Mos
              <table width="100%" border="0" cellpadding="6" cellspacing="0">
303 56d4e7fb Scott Ullrich
				<tr>
304 df152a88 Carlos Eduardo Ramos
					<td colspan="2" valign="top" class="listtopic"><?=gettext("Edit gateway"); ?></td>
305 56d4e7fb Scott Ullrich
				</tr>	
306 d173230c Seth Mos
                <tr> 
307 df152a88 Carlos Eduardo Ramos
                  <td width="22%" valign="top" class="vncellreq"><?=gettext("Interface"); ?></td>
308 d173230c Seth Mos
                  <td width="78%" class="vtable">
309 d44d26c1 Ermal
		 	<select name='interface' class='formselect' >
310 bb849003 Ermal
311 11d2be54 Ermal
		<?php 
312 883c53c9 Ermal Lu?i
                      	$interfaces = get_configured_interface_with_descr(false, true);
313
			foreach ($interfaces as $iface => $ifacename) {
314
				echo "<option value=\"{$iface}\"";
315
				if ($iface == $pconfig['friendlyiface'])
316
					echo " selected";
317
				echo ">" . htmlspecialchars($ifacename) . "</option>";
318
			}
319
			if (is_package_installed("openbgpd") == 1) {
320
				echo "<option value=\"bgpd\"";
321
				if ($pconfig['interface'] == "bgpd") 
322
					echo " selected";
323 df152a88 Carlos Eduardo Ramos
				echo ">" . gettext("Use BGPD") . "</option>";
324 883c53c9 Ermal Lu?i
			}
325
 		  ?>
326 d173230c Seth Mos
                    </select> <br>
327 df152a88 Carlos Eduardo Ramos
                    <span class="vexpl"><?=gettext("Choose which interface this gateway applies to."); ?></span></td>
328 d173230c Seth Mos
                </tr>
329
                <tr>
330 df152a88 Carlos Eduardo Ramos
                  <td width="22%" valign="top" class="vncellreq"><?=gettext("Name"); ?></td>
331 d173230c Seth Mos
                  <td width="78%" class="vtable"> 
332
                    <input name="name" type="text" class="formfld unknown" id="name" size="20" value="<?=htmlspecialchars($pconfig['name']);?>"> 
333 df152a88 Carlos Eduardo Ramos
                    <br> <span class="vexpl"><?=gettext("Gateway name"); ?></span></td>
334 d173230c Seth Mos
                </tr>
335
		<tr>
336 df152a88 Carlos Eduardo Ramos
                  <td width="22%" valign="top" class="vncellreq"><?=gettext("Gateway"); ?></td>
337 d173230c Seth Mos
                  <td width="78%" class="vtable"> 
338 d44d26c1 Ermal
                    <input name="gateway" type="text" class="formfld host" id="gateway" size="40" value="<?php if ($pconfig['dynamic']) echo "dynamic"; else echo $pconfig['gateway']; ?>">
339 df152a88 Carlos Eduardo Ramos
                    <br> <span class="vexpl"><?=gettext("Gateway IP address"); ?></span></td>
340 d173230c Seth Mos
                </tr>
341
		<tr>
342 df152a88 Carlos Eduardo Ramos
		  <td width="22%" valign="top" class="vncell"><?=gettext("Default Gateway"); ?></td>
343 d173230c Seth Mos
		  <td width="78%" class="vtable">
344 d44d26c1 Ermal
			<input name="defaultgw" type="checkbox" id="defaultgw" value="yes" <?php if ($pconfig['defaultgw'] == true) echo "checked"; ?> />
345 df152a88 Carlos Eduardo Ramos
			<strong><?=gettext("Default Gateway"); ?></strong><br />
346
			<?=gettext("This will select the above gateway as the default gateway"); ?>
347 d173230c Seth Mos
		  </td>
348
		</tr>
349
		<tr>
350 df152a88 Carlos Eduardo Ramos
		  <td width="22%" valign="top" class="vncell"><?=gettext("Monitor IP"); ?></td>
351 d173230c Seth Mos
		  <td width="78%" class="vtable">
352 616e1956 Seth Mos
			<?php
353 d44d26c1 Ermal
				if ($pconfig['gateway'] == $pconfig['monitor'])
354 616e1956 Seth Mos
					$monitor = "";
355 d44d26c1 Ermal
				else
356 616e1956 Seth Mos
					$monitor = htmlspecialchars($pconfig['monitor']);
357
			?>
358
			<input name="monitor" type="text" id="monitor" value="<?php echo $monitor; ?>" />
359 df152a88 Carlos Eduardo Ramos
			<strong><?=gettext("Alternative monitor IP"); ?></strong> <br />
360 e88ace75 Chris Buechler
			<?=gettext("Enter an alternative address here to be used to monitor the link. This is used for the " .
361 0e94685b Renato Botelho
			"quality RRD graphs as well as the load balancer entries. Use this if the gateway does not respond " .
362
			"to ICMP echo requests (pings)"); ?>.</strong>
363 d173230c Seth Mos
			<br />
364
		  </td>
365
		</tr>
366 5f53260a Ermal
		<tr>
367 023920e7 Ermal
		  <td width="22%" valign="top" class="vncell"><?=gettext("Advanced");?></td>
368 5f53260a Ermal
		  <td width="78%" class="vtable">
369 023920e7 Ermal
			<div id="showadvgatewaybox" <? if (!empty($pconfig['latencylow']) || !empty($pconfig['latencyhigh']) || !empty($pconfig['losslow']) || !empty($pconfig['losshigh']) || (isset($pconfig['weight']) && $pconfig['weight'] > 1)) echo "style='display:none'"; ?>>
370
				<input type="button" onClick="show_advanced_gateway()" value="Advanced"></input> - Show advanced option</a>
371
			</div>
372
			<div id="showgatewayadv" <? if (empty($pconfig['latencylow']) && empty($pconfig['latencyhigh']) && empty($pconfig['losslow']) && empty($pconfig['losshigh']) && (empty($pconfig['weight']) || $pconfig['weight'] == 1)) echo "style='display:none'"; ?>>
373
                        <table class="tabcont" width="100%" border="0" cellspacing="0" cellpadding="6">
374
			<tr>
375
                                <td width="22%" valign="top" class="vncellreq"><?=gettext("Weight");?></td>
376
                                <td width="78%" class="vtable">
377
					<select name='weight' class='formfldselect' id='weight'>
378
				<?php
379
					for ($i = 1; $i < 6; $i++) {
380
                                        	$selected = "";
381
                                        	if ($pconfig['weight'] == $i)
382
                                                	$selected = "selected";
383
                                        	echo "<option value='{$i}' {$selected} >{$i}</option>";
384
                                	}
385
				?>
386
					</select>
387
					<br /><?=gettext("Weight for this gateway when used in a Gateway Group.");?> <br />
388
		   		</td>
389
			</tr>
390
                        <tr>
391
                                <td width="22%" valign="top" class="vncellreq"><?=gettext("Latency thresholds");?></td>
392
                                <td width="78%" class="vtable">
393
                                <?=gettext("From");?>
394
                                    <input name="latencylow" type="text" class="formfld unknown" id="latencylow" size="2"
395
                                        value="<?=htmlspecialchars($pconfig['latencylow']);?>">
396
                                <?=gettext("To");?>
397
                                    <input name="latencyhigh" type="text" class="formfld unknown" id="latencyhigh" size="2"
398
                                        value="<?=htmlspecialchars($pconfig['latencyhigh']);?>">
399
                                    <br> <span class="vexpl"><?=gettext("These define the low and high water marks for latency in milliseconds.");?></span></td>
400
                                </td>
401
                        </tr>
402
                        <tr>
403
                                <td width="22%" valign="top" class="vncellreq"><?=gettext("Packet Loss thresholds");?></td>
404
                                <td width="78%" class="vtable">
405
                                <?=gettext("From");?>
406
                                    <input name="losslow" type="text" class="formfld unknown" id="losslow" size="2"
407
                                        value="<?=htmlspecialchars($pconfig['losslow']);?>">
408
                                <?=gettext("To");?>
409
                                    <input name="losshigh" type="text" class="formfld unknown" id="losshigh" size="2"
410
                                        value="<?=htmlspecialchars($pconfig['losshigh']);?>">
411
                                    <br> <span class="vexpl"><?=gettext("These define the low and high water marks for packet loss in %.");?></span></td>
412
                                </td>
413
                        </tr>
414
			<tr>
415
                                <td width="22%" valign="top" class="vncellreq"><?=gettext("Down");?></td>
416
                                <td width="78%" class="vtable">
417
                                    <input name="down" type="text" class="formfld unknown" id="down" size="2"
418
                                        value="<?=htmlspecialchars($pconfig['down']);?>">
419
                                    <br> <span class="vexpl"><?=gettext("This defines the down time for the alarm to fire, in seconds.");?></span></td>
420
                                </td>
421
                        </tr>
422
                        </table>
423
			</div>
424 5f53260a Ermal
		   </td>
425
		</tr>
426 d173230c Seth Mos
		<tr>
427 df152a88 Carlos Eduardo Ramos
                  <td width="22%" valign="top" class="vncell"><?=gettext("Description"); ?></td>
428 d173230c Seth Mos
                  <td width="78%" class="vtable"> 
429
                    <input name="descr" type="text" class="formfld unknown" id="descr" size="40" value="<?=htmlspecialchars($pconfig['descr']);?>">
430 0e94685b Renato Botelho
                    <br> <span class="vexpl"><?=gettext("You may enter a description here for your reference (not parsed)"); ?>.</span></td>
431 d173230c Seth Mos
                </tr>
432
                <tr>
433
                  <td width="22%" valign="top">&nbsp;</td>
434
                  <td width="78%"> 
435 bfb0b9dc Vinicius Coque
                    <input name="Submit" type="submit" class="formbtn" value="<?=gettext("Save");?>"> <input type="button" value="<?=gettext("Cancel");?>" class="formbtn"  onclick="history.back()">
436 d173230c Seth Mos
                    <?php if (isset($id) && $a_gateways[$id]): ?>
437
                    <input name="id" type="hidden" value="<?=$id;?>">
438
                    <?php endif; ?>
439
                  </td>
440
                </tr>
441
              </table>
442
</form>
443
<?php include("fend.inc"); ?>
444
<script language="JavaScript">
445 883c53c9 Ermal Lu?i
enable_change(document.iform.defaultgw);
446 d173230c Seth Mos
</script>
447
</body>
448
</html>