From 0297666a7a0e961d3d8eeea56b3f067e35e4cdd9 Mon Sep 17 00:00:00 2001 From: ftimme <ft@falkotimme.com> Date: Mon, 14 Jan 2013 12:55:01 -0500 Subject: [PATCH] - nginx_merge_locations function now supports locations that are in one line (like "location /webftp/conf/ { deny all; }"). --- server/plugins-available/nginx_plugin.inc.php | 29 ++++++++++++++++++++++++++++- 1 files changed, 28 insertions(+), 1 deletions(-) diff --git a/server/plugins-available/nginx_plugin.inc.php b/server/plugins-available/nginx_plugin.inc.php index 5074ffa..4234f94 100644 --- a/server/plugins-available/nginx_plugin.inc.php +++ b/server/plugins-available/nginx_plugin.inc.php @@ -2313,8 +2313,35 @@ $lines = explode("\n", $vhost_conf); + // if whole location block is in one line, split it up into multiple lines if(is_array($lines) && !empty($lines)){ + $linecount = sizeof($lines); + for($h=0;$h<$linecount;$h++){ + $lines[$h] = rtrim($lines[$h]); + if(substr(ltrim($lines[$h]), 0, 8) == 'location' && strpos($lines[$h], '{') !== false && strpos($lines[$h], ';') !== false){ + $lines[$h] = str_replace("{", "{\n", $lines[$h]); + $lines[$h] = str_replace(";", ";\n", $lines[$h]); + if(strpos($lines[$h], '##merge##') !== false){ + $lines[$h] = str_replace('##merge##', '', $lines[$h]); + $lines[$h] = substr($lines[$h],0,strpos($lines[$h], '{')).' ##merge##'.substr($lines[$h],strpos($lines[$h], '{')+1); + } + } + if(substr(ltrim($lines[$h]), 0, 8) == 'location' && strpos($lines[$h], '{') !== false && strpos($lines[$h], '}') !== false && strpos($lines[$h], ';') === false){ + $lines[$h] = str_replace("{", "{\n", $lines[$h]); + if(strpos($lines[$h], '##merge##') !== false){ + $lines[$h] = str_replace('##merge##', '', $lines[$h]); + $lines[$h] = substr($lines[$h],0,strpos($lines[$h], '{')).' ##merge##'.substr($lines[$h],strpos($lines[$h], '{')+1); + } + } + } + } + $vhost_conf = implode("\n", $lines); + unset($lines); + unset($linecount); + $lines = explode("\n", $vhost_conf); + + if(is_array($lines) && !empty($lines)){ $locations = array(); $islocation = false; $linecount = sizeof($lines); @@ -2383,7 +2410,7 @@ $vhost_conf = implode("\n", $lines); } - return $vhost_conf; + return trim($vhost_conf); } function client_delete($event_name,$data) { -- Gitblit v1.9.1