diff options
author | Vinicius Coque <vinicius.coque@bluepex.com> | 2011-04-04 10:42:48 -0300 |
---|---|---|
committer | Vinicius Coque <vinicius.coque@bluepex.com> | 2011-04-04 10:42:48 -0300 |
commit | f599d893fff3d78f44068dc3ba238046d933ddb1 (patch) | |
tree | e4b2c4707df823ca6b9cabeb25fe908f9caa531b /etc | |
parent | 7de4284cffe27ed6b1f4335dd39b31cd3f852321 (diff) | |
parent | 1309faddc84d101fb0ecba85782d97b04a2a1a9f (diff) | |
download | pfsense-f599d893fff3d78f44068dc3ba238046d933ddb1.zip pfsense-f599d893fff3d78f44068dc3ba238046d933ddb1.tar.gz |
Merge remote-tracking branch 'mainline/master' into inc
Conflicts:
etc/inc/shaper.inc
Diffstat (limited to 'etc')
-rw-r--r-- | etc/inc/gwlb.inc | 24 | ||||
-rw-r--r-- | etc/inc/openvpn.inc | 10 | ||||
-rw-r--r-- | etc/inc/rrd.inc | 3 | ||||
-rw-r--r-- | etc/inc/services.inc | 4 | ||||
-rw-r--r-- | etc/inc/shaper.inc | 36 | ||||
-rwxr-xr-x | etc/rc.newwanip | 3 |
6 files changed, 58 insertions, 22 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(); ?> |