summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVinicius Coque <vinicius.coque@bluepex.com>2011-04-04 10:42:48 -0300
committerVinicius Coque <vinicius.coque@bluepex.com>2011-04-04 10:42:48 -0300
commitf599d893fff3d78f44068dc3ba238046d933ddb1 (patch)
treee4b2c4707df823ca6b9cabeb25fe908f9caa531b
parent7de4284cffe27ed6b1f4335dd39b31cd3f852321 (diff)
parent1309faddc84d101fb0ecba85782d97b04a2a1a9f (diff)
downloadpfsense-f599d893fff3d78f44068dc3ba238046d933ddb1.zip
pfsense-f599d893fff3d78f44068dc3ba238046d933ddb1.tar.gz
Merge remote-tracking branch 'mainline/master' into inc
Conflicts: etc/inc/shaper.inc
-rw-r--r--etc/inc/gwlb.inc24
-rw-r--r--etc/inc/openvpn.inc10
-rw-r--r--etc/inc/rrd.inc3
-rw-r--r--etc/inc/services.inc4
-rw-r--r--etc/inc/shaper.inc36
-rwxr-xr-xetc/rc.newwanip3
-rwxr-xr-xusr/local/www/firewall_shaper.php5
-rw-r--r--usr/local/www/status_rrd_graph_img.php3
-rw-r--r--usr/local/www/vpn_openvpn_server.php12
9 files changed, 67 insertions, 33 deletions
diff --git a/etc/inc/gwlb.inc b/etc/inc/gwlb.inc
index 8ca69cc..6c4cb9d 100644
--- a/etc/inc/gwlb.inc
+++ b/etc/inc/gwlb.inc
@@ -367,6 +367,30 @@ function return_gateway_groups_array() {
$gateways_arr = return_gateways_array();
$gateway_groups_array = array();
+ /*
+ * NOTE: The code below is meant to replace the default gateway when it goes down.
+ * This facilitates services running on pfSense itself and are not handled by a PBR to continue working.
+ */
+ $upgw = "";
+ $dfltgwdown = false;
+ foreach ($gateways_arr as $gwname => $gwsttng) {
+ if ($gwsttng['defaultgw'] == true && stristr($gateways_status[$gwname]['status'], "down"))
+ $dfltgwdown = true;
+ /* Keep a record of the last up gateway */
+ if (empty($upgw) && !stristr($gateways_status[$gwname]['status'], "down"))
+ $upgw = $gwname;
+ if ($dfltgwdown == true && !empty($upgw)) {
+ if ($gateways_arr[$upgw]['gateway'] == "dynamic")
+ $gateways_arr[$upgw]['gateway'] = get_interface_gateway($gateways_arr[$upgw]['friendlyiface']);
+ if (is_ipaddr($gateways_arr[$upgw]['gateway'])) {
+ log_error("Default gateway down setting {$upgw} as default!");
+ mwexec("/sbin/route delete -inet default; /sbin/route add -inet default {$gateways_arr[$upgw]['gateway']}");
+ }
+ break;
+ }
+ }
+ unset($upgw, $dfltgwdown, $gwname, $gwsttng);
+
if (is_array($config['gateways']['gateway_group'])) {
foreach($config['gateways']['gateway_group'] as $group) {
/* create array with group gateways members seperated by tier */
diff --git a/etc/inc/openvpn.inc b/etc/inc/openvpn.inc
index 9d6d92a..96ea1f9 100644
--- a/etc/inc/openvpn.inc
+++ b/etc/inc/openvpn.inc
@@ -295,11 +295,11 @@ function openvpn_reconfigure($mode, $settings) {
$vpnid = $settings['vpnid'];
$mode_id = $mode.$vpnid;
- if (isset($settings['device_mode']))
- $tunname = "{$settings['device_mode']}{$vpnid}";
+ if (isset($settings['dev_mode']))
+ $tunname = "{$settings['dev_mode']}{$vpnid}";
else { /* defaults to tun */
$tunname = "tun{$vpnid}";
- $settings['device_mode'] = "tun";
+ $settings['dev_mode'] = "tun";
}
if ($mode == "server")
@@ -323,7 +323,7 @@ function openvpn_reconfigure($mode, $settings) {
$pfile = $g['varrun_path'] . "/openvpn_{$mode_id}.pid";
$proto = ($settings['protocol'] == 'UDP' ? 'udp' : "tcp-{$mode}");
- $device_mode = $settings['device_mode'];
+ $dev_mode = $settings['dev_mode'];
$cipher = $settings['crypto'];
$interface = $settings['interface'];
@@ -341,7 +341,7 @@ function openvpn_reconfigure($mode, $settings) {
}
$conf = "dev {$devname}\n";
- $conf .= "dev-type {$settings['device_mode']}\n";
+ $conf .= "dev-type {$settings['dev_mode']}\n";
$conf .= "dev-node /dev/{$tunname}\n";
$conf .= "writepid {$pfile}\n";
$conf .= "#user nobody\n";
diff --git a/etc/inc/rrd.inc b/etc/inc/rrd.inc
index 1a04860..0a806c3 100644
--- a/etc/inc/rrd.inc
+++ b/etc/inc/rrd.inc
@@ -811,9 +811,8 @@ function enable_rrd_graphing() {
}
function kill_traffic_collector() {
- mwexec("killall top", true);
mwexec("killall rrdtool", true);
- mwexec("/bin/pkill -f updaterrd.sh", true);
+ mwexec("/bin/pkill -a -f updaterrd.sh", true);
}
?>
diff --git a/etc/inc/services.inc b/etc/inc/services.inc
index 0c2f689..3e9de7b 100644
--- a/etc/inc/services.inc
+++ b/etc/inc/services.inc
@@ -399,14 +399,14 @@ EOD;
function services_igmpproxy_configure() {
global $config, $g;
- $iflist = get_configured_interface_list();
-
/* kill any running igmpproxy */
killbyname("igmpproxy");
if (!is_array($config['igmpproxy']['igmpentry']))
return 1;
+ $iflist = get_configured_interface_list();
+
$igmpconf = <<<EOD
##------------------------------------------------------
diff --git a/etc/inc/shaper.inc b/etc/inc/shaper.inc
index a77669d..ec1bf74 100644
--- a/etc/inc/shaper.inc
+++ b/etc/inc/shaper.inc
@@ -742,7 +742,7 @@ class priq_queue {
var $available_bw; /* in b/s */
/* This is here to help with form building and building rules/lists */
- var $subqueues = array();
+ var $subqueues = array();
/* Accesor functions */
function GetAvailableBandwidth() {
@@ -953,9 +953,17 @@ class priq_queue {
$reqdfieldsn[] = gettext("Name");
shaper_do_input_validation($data, $reqdfields, $reqdfieldsn, $input_errors);
+ if ($data['bandwidth'] && (!is_numeric($data['bandwidth'])))
+ $input_errors[] = "Bandwidth must be an integer.";
+ if ($data['bandwidth'] < 0)
+ $input_errors[] = "Bandwidth cannot be negative.";
+ if ($data['qlimit'] && (!is_numeric($data['qlimit'])))
+ $input_errors[] = "Qlimit must be an integer.";
+ if ($data['qlimit'] < 0)
+ $input_errors[] = "Qlimit must be an positive.";
if ($data['priority'] && (!is_numeric($data['priority'])
- || ($data['priority'] < 1) || ($data['priority'] > 15))) {
- $input_errors[] = gettext("The priority must be an integer between 1 and 15.");
+ || ($data['priority'] < 1) || ($data['priority'] > 15))) {
+ $input_errors[] = gettext("The priority must be an integer between 1 and 15.");
}
if ($data['qlimit'] && (!is_numeric($data['qlimit'])))
$input_errors[] = gettext("Queue limit must be an integer");
@@ -1131,13 +1139,15 @@ class priq_queue {
$form .= "<tr>";
$form .= "<td width=\"22%\" valign=\"center\" class=\"vncell\">" . gettext("Scheduler options") . "</td>";
$form .= "<td width=\"78%\" class=\"vtable\">";
- $tmpvalue = $this->GetDefault();
- if (!empty($tmpvalue)) {
- $form .= "<input type=\"checkbox\" id=\"default\" CHECKED name=\"default\" value=\"default\"";
- $form .= "> " . gettext("Default queue") . "<br>";
- } else {
- $form .= "<input type=\"checkbox\" id=\"default\" name=\"default\" value=\"default\"";
- $form .= "> " . gettext("Default queue") . "<br>";
+ if (empty($this->subqueues)) {
+ $tmpvalue = $this->GetDefault();
+ if (!empty($tmpvalue)) {
+ $form .= "<input type=\"checkbox\" id=\"default\" CHECKED name=\"default\" value=\"default\"";
+ $form .= "> " . gettext("Default queue") . "<br>";
+ } else {
+ $form .= "<input type=\"checkbox\" id=\"default\" name=\"default\" value=\"default\"";
+ $form .= "> " . gettext("Default queue") . "<br>";
+ }
}
$form .= "<input type=\"checkbox\" id=\"red\" name=\"red\" value=\"red\" ";
$tmpvalue = $this->GetRed();
@@ -4035,8 +4045,8 @@ function build_iface_without_this_queue($iface, $qname) {
global $g, $altq_list_queues;
$altq =& $altq_list_queues[$iface];
- if ($altq)
- $scheduler = ": " . $altq->GetScheduler();
+ if ($altq)
+ $scheduler = ": " . $altq->GetScheduler();
$form = "<tr><td width=\"20%\" >";
$form .= "<a href=\"firewall_shaper.php?interface=" . $iface . "&queue=" . $iface."&action=show\">".$iface.": ".$scheduler."</a>";
$form .= "</td></tr>";
@@ -4045,7 +4055,7 @@ function build_iface_without_this_queue($iface, $qname) {
$form .= $iface . "&queue=". $qname . "&action=add\">";
$form .= "<img src=\"";
$form .= "./themes/".$g['theme']."/images/icons/icon_plus.gif\"";
- $form .= " width=\"17\" height=\"17\" border=\"0\" title=\"" . gettext("Clone shaper/queue on this interface") . "\">";
+ $form .= " width=\"17\" height=\"17\" border=\"0\" title=\"Clone shaper/queue on this interface\">";
$form .= gettext(" Clone shaper/queue on this interface") . "</a></td></tr>";
return $form;
diff --git a/etc/rc.newwanip b/etc/rc.newwanip
index f4e59c7..654d0dd 100755
--- a/etc/rc.newwanip
+++ b/etc/rc.newwanip
@@ -138,6 +138,9 @@ if (substr($interface_real, 0, 4) != "ovpn")
/* reload graphing functions */
enable_rrd_graphing();
+/* reload igmpproxy */
+services_igmpproxy_configure();
+
restart_packages();
?>
diff --git a/usr/local/www/firewall_shaper.php b/usr/local/www/firewall_shaper.php
index f3cdbab..407c947 100755
--- a/usr/local/www/firewall_shaper.php
+++ b/usr/local/www/firewall_shaper.php
@@ -386,11 +386,8 @@ include("head.inc");
<link rel="stylesheet" type="text/css" media="all" href="./tree/tree.css" />
<script type="text/javascript" src="./tree/tree.js"></script>
<?php
-if ($queue) {
- echo "<script type=\"text/javascript\">";
+if ($queue)
echo $queue->build_javascript();
- echo "</script>";
-}
echo $newjavascript;
include("fbegin.inc");
diff --git a/usr/local/www/status_rrd_graph_img.php b/usr/local/www/status_rrd_graph_img.php
index 22802bc..b2d9cbb 100644
--- a/usr/local/www/status_rrd_graph_img.php
+++ b/usr/local/www/status_rrd_graph_img.php
@@ -315,7 +315,8 @@ if((strstr($curdatabase, "-traffic.rrd")) && (file_exists("$rrddbpath$curdatabas
$graphcmd .= "CDEF:\"$curif-bytes_t=$curif-bytes_in_t_pass,$curif-bytes_out_t_block,+\" ";
$graphcmd .= "VDEF:\"$curif-in_bits_95=$curif-in_bits,95,PERCENT\" ";
- $graphcmd .= "VDEF:\"$curif-out_bits_95=$curif-out_bits,95,PERCENT\" ";
+ $graphcmd .= "CDEF:\"$curif-out_bits_mul=$curif-out_bits,$multiplier,*\" ";
+ $graphcmd .= "VDEF:\"$curif-out_bits_95=$curif-out_bits_mul,95,PERCENT\" ";
$graphcmd .= "AREA:\"$curif-in_bits_block#{$colortrafficdown[1]}:$curif-in-block\" ";
$graphcmd .= "AREA:\"$curif-in_bits_pass#{$colortrafficdown[0]}:$curif-in-pass:STACK\" ";
diff --git a/usr/local/www/vpn_openvpn_server.php b/usr/local/www/vpn_openvpn_server.php
index ef82716..cc38e65 100644
--- a/usr/local/www/vpn_openvpn_server.php
+++ b/usr/local/www/vpn_openvpn_server.php
@@ -91,7 +91,7 @@ if($_GET['act']=="new"){
$pconfig['tlsauth_enable'] = "yes";
$pconfig['autotls_enable'] = "yes";
$pconfig['dh_length'] = 1024;
- $pconfig['device_mode'] = "tun";
+ $pconfig['dev_mode'] = "tun";
$pconfig['interface'] = "wan";
$pconfig['local_port'] = openvpn_port_next('UDP');
$pconfig['pool_enable'] = "yes";
@@ -105,7 +105,7 @@ if($_GET['act']=="edit"){
$pconfig['mode'] = $a_server[$id]['mode'];
$pconfig['protocol'] = $a_server[$id]['protocol'];
$pconfig['authmode'] = $a_server[$id]['authmode'];
- $pconfig['device_mode'] = $a_server[$id]['device_mode'];
+ $pconfig['dev_mode'] = $a_server[$id]['dev_mode'];
$pconfig['interface'] = $a_server[$id]['interface'];
if (!empty($a_server[$id]['ipaddr'])) {
$pconfig['interface'] = $pconfig['interface'] . '|' . $a_server[$id]['ipaddr'];
@@ -306,7 +306,7 @@ if ($_POST) {
if (!empty($pconfig['authmode']))
$server['authmode'] = implode(",", $pconfig['authmode']);
$server['protocol'] = $pconfig['protocol'];
- $server['device_mode'] = $pconfig['device_mode'];
+ $server['dev_mode'] = $pconfig['dev_mode'];
list($server['interface'], $server['ipaddr']) = explode ("|",$pconfig['interface']);
$server['local_port'] = $pconfig['local_port'];
$server['description'] = $pconfig['description'];
@@ -668,12 +668,12 @@ if ($savemsg)
<tr>
<td width="22%" valign="top" class="vncellreq"><?=gettext("Device Mode"); ?></td>
<td width="78%" class="vtable">
- <select name="device_mode" class="formselect">
+ <select name="dev_mode" class="formselect">
<?php
foreach ($openvpn_dev_mode as $device):
$selected = "";
- if (! empty($pconfig['device_mode'])) {
- if ($pconfig['device_mode'] == $device)
+ if (! empty($pconfig['dev_mode'])) {
+ if ($pconfig['dev_mode'] == $device)
$selected = "selected";
} else {
if ($device == "tun")
OpenPOWER on IntegriCloud