diff options
author | PiBa-NL <pba_2k3@yahoo.com> | 2014-10-16 16:51:41 +0200 |
---|---|---|
committer | PiBa-NL <pba_2k3@yahoo.com> | 2014-10-16 16:51:41 +0200 |
commit | 7d12486648a34c36b14bedd3d6edf2f9a9b658d7 (patch) | |
tree | 12c6a543d3986051620aefb93dca55754f40cdfa | |
parent | 76898750b9a6795a9846f4e56bb3edd95e76dabf (diff) | |
download | pfsense-packages-7d12486648a34c36b14bedd3d6edf2f9a9b658d7.tar.gz pfsense-packages-7d12486648a34c36b14bedd3d6edf2f9a9b658d7.tar.bz2 pfsense-packages-7d12486648a34c36b14bedd3d6edf2f9a9b658d7.zip |
haproxy-devel, fix php crash while installing package, trying to upgrade old configuration from a non existing array.
-rw-r--r-- | config/haproxy-devel/haproxy.inc | 9 | ||||
-rw-r--r-- | config/haproxy-devel/haproxy_utils.inc | 18 |
2 files changed, 22 insertions, 5 deletions
diff --git a/config/haproxy-devel/haproxy.inc b/config/haproxy-devel/haproxy.inc index e239ab8c..07086bd5 100644 --- a/config/haproxy-devel/haproxy.inc +++ b/config/haproxy-devel/haproxy.inc @@ -362,8 +362,6 @@ EOD; fclose($fd); exec("chmod a+rx /usr/local/etc/rc.d/haproxy.sh"); - - $static_output .= "HAProxy, update configuration\n"; update_output_window($static_output); @@ -418,7 +416,7 @@ EOD; } /* XML update to: pkg v1.3 and 'pool' changed to 'backend_serverpool' because 'pool' was added to listtags() in xmlparse.inc */ - if (is_array($config['installedpackages']['haproxy']['ha_backends']['item'][0]['pool'])) { + if (is_arrayset($config,'installedpackages','haproxy','ha_backends','item',0,'pool')) { $static_output .= "HAProxy, Do XML upgrade, change to backend_serverpool from pool array\n"; update_output_window($static_output); @@ -431,7 +429,8 @@ EOD; $writeconfigupdate = true; } //also move setting for existing 2.0 installations as only the new variable is used - if (isset($config['installedpackages']['haproxy']['ha_backends']['item'][0]['pool'])) { + if (is_arrayset($config,'installedpackages','haproxy','ha_backends','item',0) && + isset($config['installedpackages']['haproxy']['ha_backends']['item'][0]['pool'])) { $static_output .= "HAProxy, Do XML upgrade, change to backend_serverpool from pool\n"; update_output_window($static_output); foreach($config['installedpackages']['haproxy']['ha_backends']['item'] as &$frontend) @@ -443,7 +442,7 @@ EOD; $writeconfigupdate = true; } // update config to "haproxy-devel 1.5-dev19 pkg v0.5" - if(is_array($config['installedpackages']['haproxy']['ha_backends']['item'])) { + if(is_arrayset($config,'installedpackages','haproxy','ha_backends','item')) { $static_output .= "HAProxy, Do XML upgrade, update frontend options\n"; update_output_window($static_output); foreach ($config['installedpackages']['haproxy']['ha_backends']['item'] as &$bind) { diff --git a/config/haproxy-devel/haproxy_utils.inc b/config/haproxy-devel/haproxy_utils.inc index 8fb89eab..08906bb0 100644 --- a/config/haproxy-devel/haproxy_utils.inc +++ b/config/haproxy-devel/haproxy_utils.inc @@ -44,6 +44,24 @@ if(!function_exists('ifset')){ }; } +if(!function_exists('is_arrayset')){ + function is_arrayset(&$array, $items){ + if (!isset($array)) + return false; + $item = $array; + $arg = func_get_args(); + for($i = 1; $i < count($arg); $i++) { + + $itemindex = $arg[$i]; + if (!isset($item[$itemindex]) || !is_array($item[$itemindex])) + return false; + $item = $item[$itemindex]; + + } + return true; + } +} + function haproxy_compareByName($a, $b) { return strcasecmp($a['name'], $b['name']); } |