" . gettext("Note") . ":
";
$default_layer7shaper_msg .= "" . gettext("You can add new layer7 protocol patterns by simply uploading the file") . " " . gettext("here") . ".
";
$default_layer7shaper_msg .= "
" . $dn_default_shaper_msg . $default_layer7shaper_msg . "
"; break; } } //add a new l7rules container else if ($_POST) { $show_proto_form = true; unset($input_errors); if($_POST['submit']) { if (isset($layer7_rules_list[$name])) { $l7r = $layer7_rules_list[$name]; $_POST['divert_port'] = $l7r->GetRPort(); } else { $l7r =& new layer7(); $_POST['divert_port'] = $l7r->gen_divert_port(); } for($i=0; $_POST['protocol'][$i] <> ""; $i++) { $_POST['l7rules'][$i]['protocol'] = $_POST['protocol'][$i]; $_POST['l7rules'][$i]['structure'] = $_POST['structure'][$i]; $_POST['l7rules'][$i]['behaviour'] = $_POST['behaviour'][$i]; } $l7r->validate_input($_POST,&$input_errors); $l7r->ReadConfig($_POST['container'], $_POST); //Before writing the results, we need to test for repeated protocols $non_dupes = array(); $dupes = array(); for($j=0; $j<$i; $j++) { if(!$non_dupes[$_POST['protocol'][$j]]) $non_dupes[$_POST['protocol'][$j]] = true; else $dupes[] = $_POST['protocol'][$j]; } unset($non_dupes); if(sizeof($dupes) == 0 && !$input_errors) { $l7r->wconfig(); write_config(); mark_subsystem_dirty('shaper'); read_layer7_config(); } else { if(sizeof($dupes) > 0) { $dupe_error = gettext("Found the following repeated protocol definitions") . ": "; foreach($dupes as $dupe) $dupe_error .= "$dupe "; $input_errors[] .= $dupe_error; } } unset($dupes); unset($dupe_error); //Even if there are repeated protocols, we won't lose any previous values //The user will be able to solve the situation $output_form .= $l7r->build_form(); //Necessary to correctly build the proto form $container = $layer7_rules_list[$name]; if($input_errors) $container =& $l7r; } else if($_POST['apply']) { write_config(); $retval = 0; $retval = filter_configure(); $savemsg = get_std_save_message($retval); if(stristr($retval, "error") <> true) $savemsg = get_std_save_message($retval); else $savemsg = $retval; clear_subsystem_dirty('shaper'); if($container) { $output_form .= $container->build_form(); } else { $show_proto_form = false; $output_form .= "" . $dn_default_shaper_msg . $default_layer7shaper_msg . "
"; } } else if ($_POST['delete']) { $container->delete_l7c(); write_config(); mark_subsystem_dirty('shaper'); unset($container); header("Location: firewall_shaper_layer7.php"); exit; } else { $show_proto_form = false; } } else { $show_proto_form = false; $output_form .= "" . $dn_default_shaper_msg . $default_layer7shaper_msg . "
"; } // Builds the left tree $tree = "