"") { mwexec("killall -9 pfctl php"); exit; } $pgtitle = array("Firewall","Traffic Shaper"); read_altq_config(); /* * The whole logic in these code maybe can be specified. * If you find a better way contact me :). */ if ($_GET) { if ($_GET['queue']) $qname = trim($_GET['queue']); if ($_GET['interface']) $interface = trim($_GET['interface']); if ($_GET['action']) $action = $_GET['action']; } if ($_POST) { if ($_POST['name']) $qname = trim($_POST['name']); if ($_POST['interface']) $interface = trim($_POST['interface']); if ($_POST['parentqueue']) $parentqueue = trim($_POST['parentqueue']); } if ($interface) { $altq = $altq_list_queues[$interface]; if ($altq) { $queue =& $altq->find_queue($interface, $qname); } else $addnewaltq = true; } $dontshow = false; $newqueue = false; $output_form = ""; if ($_GET) { switch ($action) { case "delete": if ($queue) { $queue->delete_queue(); write_config(); touch($d_shaperconfdirty_path); } header("Location: firewall_shaper.php"); exit; break; case "resetall": foreach ($altq_list_queues as $altq) $altq->delete_all(); unset($altq_list_queues); $altq_list_queues = array(); $tree = ""; unset($config['shaper']['queue']); unset($queue); unset($altq); $can_add = false; $can_enable = false; $dontshow = true; foreach ($config['filter']['rule'] as $key => $rule) { if (isset($rule['wizard']) && $rule['wizard'] == "yes") unset($config['filter']['rule'][$key]); } write_config(); $retval = 0; $savemsg = get_std_save_message($retval); config_lock(); $retval = filter_configure(); config_unlock(); if (stristr($retval, "error") <> true) $savemsg = get_std_save_message($retval); else $savemsg = $retval; $output_form = $default_shaper_message; break; case "add": /* XXX: Find better way because we shouldn't know about this */ if ($altq) { switch ($altq->GetScheduler()) { case "PRIQ": $q = new priq_queue(); break; case "FAIRQ": $q = new fairq_queue(); break; case "HFSC": $q = new hfsc_queue(); break; case "CBQ": $q = new cbq_queue(); break; default: /* XXX: Happens when sched==NONE?! */ $q = new altq_root_queue(); break; } } else if ($addnewaltq) { $q = new altq_root_queue(); } else $input_errors[] = "Could not create new queue/discipline!"; if ($q) { $q->SetInterface($interface); $output_form .= $q->build_form(); $output_form .= ""; $newjavascript = $q->build_javascript(); unset($q); $newqueue = true; } break; case "show": if ($queue) $output_form .= $queue->build_form(); else $input_errors[] = "Queue not found!"; break; case "enable": if ($queue) { $queue->SetEnabled("on"); $output_form .= $queue->build_form(); write_config(); touch($d_shaperconfdirty_path); } else $input_errors[] = "Queue not found!"; break; case "disable": if ($queue) { $queue->SetEnabled(""); $output_form .= $queue->build_form(); write_config(); touch($d_shaperconfdirty_path); } else $input_errors[] = "Queue not found!"; break; default: $output_form .= "

" . $default_shaper_msg."

"; $dontshow = true; break; } } else if ($_POST) { unset($input_errors); if ($addnewaltq) { $altq =& new altq_root_queue(); $altq->SetInterface($interface); switch ($altq->GetBwscale()) { case "Mb": $factor = 1000 * 1000; brak; case "Kb": $factor = 1000; break; case "b": $factor = 1; break; case "Gb": $factor = 1000 * 1000 * 1000; break; case "%": /* We don't use it for root_XXX queues. */ default: /* XXX assume Kb by default. */ $factor = 1000; break; } $altq->SetAvailableBandwidth($altq->GetBandwidth() * $factor); $altq->ReadConfig($_POST); $altq->validate_input($_POST, &$input_errors); if (!$input_errors) { unset($tmppath); $tmppath[] = $altq->GetInterface(); $altq->SetLink(&$tmppath); $altq->wconfig(); write_config(); touch($d_shaperconfdirty_path); $can_enable = true; $can_add = true; } read_altq_config(); $output_form .= $altq->build_form(); } else if ($parentqueue) { /* Add a new queue */ $qtmp =& $altq->find_queue($interface, $parentqueue); if ($qtmp) { $tmppath =& $qtmp->GetLink(); array_push($tmppath, $qname); $tmp =& $qtmp->add_queue($interface, $_POST, $tmppath, &$input_errors); if (!$input_errors) { array_pop($tmppath); $tmp->wconfig(); $can_enable = true; if ($tmp->CanHaveChilds() && $can_enable) { if ($tmp->GetDefault() <> "") $can_add = false; else $can_add = true; } else $can_add = false; write_config(); touch($d_shaperconfdirty_path); $can_enable = true; if ($altq->GetScheduler() != "PRIQ") /* XXX */ if ($tmp->GetDefault() <> "") $can_add = false; else $can_add = true; } read_altq_config(); $output_form .= $tmp->build_form(); } else $input_errors[] = "Could not add new queue."; } else if ($_POST['apply']) { write_config(); $retval = 0; $savemsg = get_std_save_message($retval); config_lock(); $retval = filter_configure(); config_unlock(); if (stristr($retval, "error") <> true) $savemsg = get_std_save_message($retval); else $savemsg = $retval; /* reset rrd queues */ system("rm -f /var/db/rrd/*queuedrops.rrd"); system("rm -f /var/db/rrd/*queues.rrd"); enable_rrd_graphing(); unlink($d_shaperconfdirty_path); if ($queue) { $output_form .= $queue->build_form(); $dontshow = false; } else { $output_form .= $default_shaper_message; $dontshow = true; } } else if ($queue) { $queue->validate_input($_POST, &$input_errors); if (!$input_errors) { $queue->update_altq_queue_data($_POST); $queue->wconfig(); write_config(); touch($d_shaperconfdirty_path); $dontshow = false; } read_altq_config(); $output_form .= $queue->build_form(); } else { $output_form .= "

" . $default_shaper_msg."

"; $dontshow = true; } } else { $output_form .= "

" . $default_shaper_msg."

"; $dontshow = true; } if ($queue) { if ($queue->GetEnabled()) $can_enable = true; else $can_enable = false; if ($queue->CanHaveChilds() && $can_enable) { if ($altq->GetQname() <> $queue->GetQname() && $queue->GetDefault() <> "") $can_add = false; else $can_add = true; } else $can_add = false; } $tree = ""; if (!$dontshow || $newqueue) { $output_form .= ""; $output_form .= "Queue Actions"; $output_form .= ""; $output_form .= ""; if ($can_add || $addnewaltq) { $output_form .= "GetQname(); } $output_form .= "&action=add\">"; $output_form .= ""; $output_form .= ""; $output_form .= ""; $output_form .= ""; else $output_form .= " value=\"Disable shaper on interface\">"; $output_form .= ""; } $output_form .= ""; $output_form .= ""; } else $output_form .= ""; $output = "
"; if (!$dontshow) { if ($queue || $altq || $newqueue) { $output .= "
"; $output .= "Enable/Disable"; $output .= ""; $output .= " GetEnabled()) $output .= " CHECKED"; else if ($altq) if ($altq->GetEnabled()) $output .= " CHECKED"; $output .= " > Enable/Disable queue and its childs"; $output .= ""; } } $output .= $output_form; //$pgtitle = "Firewall: Shaper: By Interface View"; include("head.inc"); ?> "; echo $queue->build_javascript(); echo ""; } echo $newjavascript; include("fbegin.inc"); ?>

You must apply the changes in order for them to take effect.");?>
0): ?>