Skip to content

Commit

Permalink
haproxy, haproxy-devel, 0.59_5, re-fix the SNI options for haproxy 1.…
Browse files Browse the repository at this point in the history
…7 by properly using the crt-list without options it doesn't understand, make getarraybyref() more robust, more php7 'fixes' cleanup..
  • Loading branch information
PiBa-NL committed Jul 27, 2018
1 parent 57267bf commit 96b9007
Show file tree
Hide file tree
Showing 12 changed files with 35 additions and 251 deletions.
2 changes: 1 addition & 1 deletion net/pfSense-pkg-haproxy-devel/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

PORTNAME= pfSense-pkg-haproxy-devel
PORTVERSION= 0.59
PORTREVISION= 3
PORTREVISION= 5
CATEGORIES= net
MASTER_SITES= # empty
DISTFILES= # empty
Expand Down
126 changes: 9 additions & 117 deletions net/pfSense-pkg-haproxy-devel/files/usr/local/pkg/haproxy/haproxy.inc
Original file line number Diff line number Diff line change
Expand Up @@ -658,12 +658,6 @@ EOD;

function haproxy_find_backend($backendname) {
global $config;
if (!is_array($config['installedpackages']['haproxy']['ha_pools'])) {
$config['installedpackages']['haproxy']['ha_pools'] = array();
}
if (!is_array($config['installedpackages']['haproxy']['ha_pools']['item'])) {
$config['installedpackages']['haproxy']['ha_pools']['item'] = array();
}
$a_backends = &$config['installedpackages']['haproxy']['ha_pools']['item'];
foreach ($a_backends as &$backend) {
if ($backend['name'] == $backendname) {
Expand All @@ -690,15 +684,7 @@ function write_backend($configpath, $fd, $name, $pool, $backendsettings) {
$ipversion = $backendsettings['ipversion'];
$a_global = &$config['installedpackages']['haproxy'];

if (!is_array($config['installedpackages']['haproxy']['email_mailers'])) {
$config['installedpackages']['haproxy']['email_mailers'] = array();
}
if (!is_array($config['installedpackages']['haproxy']['email_mailers']['item'])) {
$config['installedpackages']['haproxy']['email_mailers']['item'] = array();
}
$a_mailers = &$config['installedpackages']['haproxy']['email_mailers']['item'];


$a_resolvers = $config['installedpackages']['haproxy']['dns_resolvers']['item'];

global $a_checktypes, $a_cookiemode, $a_files_cache, $a_error;
Expand Down Expand Up @@ -1402,12 +1388,6 @@ function haproxy_write_certificate_issuer($filename, $certid) {
function haproxy_uses_ocsp() {
global $config;

if (!is_array($config['installedpackages']['haproxy']['ha_backends'])) {
$config['installedpackages']['haproxy']['ha_backends'] = array();
}
if (!is_array($config['installedpackages']['haproxy']['ha_backends']['item'])) {
$config['installedpackages']['haproxy']['ha_backends']['item'] = array();
}
$a_frontends = &$config['installedpackages']['haproxy']['ha_backends']['item'];
if (!is_array($a_frontends)) {
return false;
Expand Down Expand Up @@ -1454,12 +1434,6 @@ function haproxy_updateocsp_one($socketupdate, $filename, $name) {
function haproxy_updateocsp($socketupdate = true) {
global $config, $g;

if (!is_array($config['installedpackages']['haproxy']['ha_backends'])) {
$config['installedpackages']['haproxy']['ha_backends'] = array();
}
if (!is_array($config['installedpackages']['haproxy']['ha_backends']['item'])) {
$config['installedpackages']['haproxy']['ha_backends']['item'] = array();
}
$a_frontends = &$config['installedpackages']['haproxy']['ha_backends']['item'];
if (!is_array($a_frontends)) {
return true;
Expand Down Expand Up @@ -1496,25 +1470,6 @@ function haproxy_writeconf($configpath) {
rmdir_recursive($configpath);
@mkdir($configpath, 0755, true);

if(!is_array($config['installedpackages']['haproxy'])) {
$config['installedpackages']['haproxy'] = array();
}
if(!is_array($config['installedpackages']['haproxy']['ha_backends'])) {
$config['installedpackages']['haproxy']['ha_backends'] = array();
}
if(!is_array($config['installedpackages']['haproxy']['ha_pools'])) {
$config['installedpackages']['haproxy']['ha_pools'] = array();
}
if(!is_array($config['installedpackages']['haproxy']['email_mailers'])) {
$config['installedpackages']['haproxy']['email_mailers'] = array();
}
if(!is_array($config['installedpackages']['haproxy']['dns_resolvers'])) {
$config['installedpackages']['haproxy']['dns_resolvers'] = array();
}
if(!is_array($config['installedpackages']['haproxy']['files'])) {
$config['installedpackages']['haproxy']['files'] = array();
}

$a_global = &$config['installedpackages']['haproxy'];
$a_frontends = &$config['installedpackages']['haproxy']['ha_backends']['item'];
$a_backends = &$config['installedpackages']['haproxy']['ha_pools']['item'];
Expand Down Expand Up @@ -1671,7 +1626,7 @@ function haproxy_writeconf($configpath) {
if ($frontend['secondary'] != 'yes') {
$filename = "$configpath/{$frontend['name']}.pem";
$ssl_crt = " ssl";
// $ssl_crt = " crt $filename";
// $ssl_crt .= " crt $filename";
// $ssl_crt .= " crt $certfolder";
@mkdir($certfolder, 0755, true);

Expand Down Expand Up @@ -1837,7 +1792,12 @@ function haproxy_writeconf($configpath) {
if ($frontendname == $frontend['name']) {
// continue;// skip primary from the crt-list
}
$crtlist .= "{$crtfile} [{$ssloptions}] {$frontend['sslsnifilter']}\r\n";
if (haproxy_version() < "1.8") {
// 1.7 does not support crt-list 'ssl options', only the filter can be set.
$crtlist .= "{$crtfile} {$frontend['sslsnifilter']}\r\n";
} else {
$crtlist .= "{$crtfile} [{$ssloptions}] {$frontend['sslsnifilter']}\r\n";
}
}
}
file_put_contents($crtlistfilename, $crtlist);
Expand Down Expand Up @@ -2213,12 +2173,6 @@ function frontend_usetransparentbackend($frontend) {

function use_transparent_clientip_proxying() {
global $config;
if (!is_array($config['installedpackages']['haproxy']['ha_pools'])) {
$config['installedpackages']['haproxy']['ha_pools'] = array();
}
if (!is_array($config['installedpackages']['haproxy']['ha_pools']['item'])) {
$config['installedpackages']['haproxy']['ha_pools']['item'] = array();
}
$a_backends = &$config['installedpackages']['haproxy']['ha_pools']['item'];
if (is_array($a_backends)) {
foreach ($a_backends as $backend) {
Expand All @@ -2232,12 +2186,6 @@ function use_transparent_clientip_proxying() {

function haproxy_get_transparent_backends(){
global $config;
if (!is_array($config['installedpackages']['haproxy']['ha_pools'])) {
$config['installedpackages']['haproxy']['ha_pools'] = array();
}
if (!is_array($config['installedpackages']['haproxy']['ha_pools']['item'])) {
$config['installedpackages']['haproxy']['ha_pools']['item'] = array();
}
$a_backends = &$config['installedpackages']['haproxy']['ha_pools']['item'];
$transparent_backends = array();
if (!is_array($a_backends)) {
Expand Down Expand Up @@ -2594,12 +2542,6 @@ function haproxy_xmlrpc_sync_configure() {

function get_frontend_id($name) {
global $config;
if (!is_array($config['installedpackages']['haproxy']['ha_backends'])) {
$config['installedpackages']['haproxy']['ha_backends'] = array();
}
if (!is_array($config['installedpackages']['haproxy']['ha_backends']['item'])) {
$config['installedpackages']['haproxy']['ha_backends']['item'] = array();
}
$a_frontend = &$config['installedpackages']['haproxy']['ha_backends']['item'];
$i = 0;
foreach($a_frontend as $frontend)
Expand All @@ -2621,12 +2563,6 @@ function haproxy_is_frontendname($name) {

function get_primaryfrontend($frontend) {
global $config;
if (!is_array($config['installedpackages']['haproxy']['ha_backends'])) {
$config['installedpackages']['haproxy']['ha_backends'] = array();
}
if (!is_array($config['installedpackages']['haproxy']['ha_backends']['item'])) {
$config['installedpackages']['haproxy']['ha_backends']['item'] = array();
}
$a_frontend = &$config['installedpackages']['haproxy']['ha_backends']['item'];
if ($frontend['secondary'] == 'yes') {
$mainfrontend = $a_frontend[get_frontend_id($frontend['primary_frontend'])];
Expand Down Expand Up @@ -2697,12 +2633,6 @@ function get_frontend_bindips($frontend) {

function haproxy_check_config() {
global $config;
if (!is_array($config['installedpackages']['haproxy']['ha_backends'])){
$config['installedpackages']['haproxy']['ha_backends'] = array();
}
if (!is_array($config['installedpackages']['haproxy']['ha_backends']['item'])){
$config['installedpackages']['haproxy']['ha_backends']['item'] = array();
}
$a_backends = &$config['installedpackages']['haproxy']['ha_backends']['item'];
$result = false;
$activefrontends = array();
Expand Down Expand Up @@ -2740,12 +2670,6 @@ function haproxy_check_config() {

function get_haproxy_backends() {
global $config;
if (!is_array($config['installedpackages']['haproxy']['ha_pools'])) {
$config['installedpackages']['haproxy']['ha_pools'] = array();
}
if (!is_array($config['installedpackages']['haproxy']['ha_pools']['item'])) {
$config['installedpackages']['haproxy']['ha_pools']['item'] = array();
}
$a_backend = &$config['installedpackages']['haproxy']['ha_pools']['item'];
$result = array();
if (!is_array($a_backend)) {
Expand All @@ -2761,12 +2685,6 @@ function get_haproxy_backends() {

function get_haproxy_frontends($excludeitem = "") {
global $config;
if (!is_array($config['installedpackages']['haproxy']['ha_backends'])){
$config['installedpackages']['haproxy']['ha_backends'] = array();
}
if (!is_array($config['installedpackages']['haproxy']['ha_backends']['item'])){
$config['installedpackages']['haproxy']['ha_backends']['item'] = array();
}
$a_frontend = &$config['installedpackages']['haproxy']['ha_backends']['item'];
$result = array();
if (!is_array($a_frontend)) {
Expand Down Expand Up @@ -2953,12 +2871,6 @@ function get_backend_acls($backend, $type) {

function get_backend_id($name) {
global $config;
if (!is_array($config['installedpackages']['haproxy']['ha_pools'])) {
$config['installedpackages']['haproxy']['ha_pools'] = array();
}
if (!is_array($config['installedpackages']['haproxy']['ha_pools']['item'])) {
$config['installedpackages']['haproxy']['ha_pools']['item'] = array();
}
$a_backend = &$config['installedpackages']['haproxy']['ha_pools']['item'];
$i = 0;
if (is_array($a_backend)) {
Expand All @@ -2974,12 +2886,6 @@ function get_backend_id($name) {

function get_backend($name) {
global $config;
if (!is_array($config['installedpackages']['haproxy']['ha_pools'])) {
$config['installedpackages']['haproxy']['ha_pools'] = array();
}
if (!is_array($config['installedpackages']['haproxy']['ha_pools']['item'])) {
$config['installedpackages']['haproxy']['ha_pools']['item'] = array();
}
$a_backend = &$config['installedpackages']['haproxy']['ha_pools']['item'];
$id = get_backend_id($name);
if (is_numeric($id)) {
Expand All @@ -2990,21 +2896,7 @@ function get_backend($name) {

function use_frontend_as_unixsocket($name) {
global $config;

if (!is_array($config['installedpackages']['haproxy']['ha_pools'])) {
$config['installedpackages']['haproxy']['ha_pools'] = array();
}
if (!is_array($config['installedpackages']['haproxy']['ha_pools']['item'])) {
$config['installedpackages']['haproxy']['ha_pools']['item'] = array();
}
if (!is_array($backend['ha_servers'])) {
$backend['ha_servers'] = array();
}
if (!is_array($backend['ha_servers']['item'])) {
$backend['ha_servers']['item'] = array();
}

$a_backends = &$config['installedpackages']['haproxy']['ha_pools']['item'];
$a_backends = getarraybyref($config['installedpackages']['haproxy'],'ha_pools','item');
foreach ($a_backends as $backend) {
$a_servers = getarraybyref($backend,'ha_servers','item');
if (is_array($a_servers)) {
Expand Down Expand Up @@ -3034,7 +2926,7 @@ function haproxy_find_create_certificate($certificatename) {
return $cert;
}
global $config;
$a_cert =& $config['cert'];
$a_cert = &$config['cert'];
$cert = array();
$cert['refid'] = uniqid();
$cert['descr'] = gettext($certificatename);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,9 @@ function &getarraybyref(&$array) {
if (!isset($array)) {
return false;
}
if (!is_array($array)) {
$array = array();
}
$item = &$array;
$arg = func_get_args();
for($i = 1; $i < count($arg); $i++) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -947,6 +947,9 @@ function type_change(type) {

$section = new Form_Section_class("SSL Offloading - client certificates");
$section->addClass("haproxy_ssloffloading_enabled");
if ($pconfig['secondary'] == 'yes' && haproxy_version() < "1.8") {
$section->addClass("hidden");
}
$section->addInput(new Form_StaticText(
'Note',
"<b>Client certificate verification options, leave all these options empty if you do not want to ask for a client certificate</b><br/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -466,12 +466,6 @@ function fields_actions_details_showfieldfunction($htmltable, $itemname, $values
// name changed:
$oldvalue = $pool['name'];
$newvalue = $_POST['name'];
if (!is_array($config['installedpackages']['haproxy']['ha_backends'])) {
$config['installedpackages']['haproxy']['ha_backends'] = array();
}
if (!is_array($config['installedpackages']['haproxy']['ha_backends']['item'])) {
$config['installedpackages']['haproxy']['ha_backends']['item'] = array();
}
rename_backend_references($oldvalue, $newvalue);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@
?>
<div class="panel panel-default">

<?
<?php
if (isset($_GET['showstatresolvers'])){
$showstatresolversname = $_GET['showstatresolvers'];
echo "<td colspan='2'>";
Expand Down
2 changes: 1 addition & 1 deletion net/pfSense-pkg-haproxy/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

PORTNAME= pfSense-pkg-haproxy
PORTVERSION= 0.59
PORTREVISION= 4
PORTREVISION= 5
CATEGORIES= net
MASTER_SITES= # empty
DISTFILES= # empty
Expand Down
Loading

0 comments on commit 96b9007

Please sign in to comment.