From df7b8f85ced7df2f0e23eca07698ae2f126ce017 Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Mon, 10 Aug 2015 19:59:52 +0300 Subject: [PATCH 1/2] Added escaped newlines to document. --- .../Getting-Started/Building-MaxScale-from-Source-Code.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/Getting-Started/Building-MaxScale-from-Source-Code.md b/Documentation/Getting-Started/Building-MaxScale-from-Source-Code.md index 96147c0f1..a3d3e7708 100644 --- a/Documentation/Getting-Started/Building-MaxScale-from-Source-Code.md +++ b/Documentation/Getting-Started/Building-MaxScale-from-Source-Code.md @@ -27,8 +27,8 @@ The full list of dependencies for the most common distributions is provided in t You will need to install all of the following packages for all versions of RHEL and CentOS. ``` -gcc gcc-c++ ncurses-devel bison glibc-devel cmake libgcc perl make libtool -openssl-devel libaio libaio-devel librabbitmq-devel libcurl-devel pcre-devel +gcc gcc-c++ ncurses-devel bison glibc-devel cmake libgcc perl make libtool \ + openssl-devel libaio libaio-devel librabbitmq-devel libcurl-devel pcre-devel ``` In addition, if you wish to to build an RPM package include: @@ -61,7 +61,7 @@ MariaDB-devel MariaDB-server These packages are required on all versions of Ubuntu and Debian. ``` - build-essential libssl-dev libaio-dev ncurses-dev bison + build-essential libssl-dev libaio-dev ncurses-dev bison \ cmake perl libtool librabbitmq-dev libcurl-dev libpcre3-dev ``` From d6b587ad5974febd12bb402b55cc74d4bd3732ca Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Tue, 11 Aug 2015 21:07:11 +0300 Subject: [PATCH 2/2] Fixed bad directory names in config not causing MaxScale to exit. --- server/core/gateway.c | 48 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 40 insertions(+), 8 deletions(-) diff --git a/server/core/gateway.c b/server/core/gateway.c index b9c85434d..b9334d8f8 100644 --- a/server/core/gateway.c +++ b/server/core/gateway.c @@ -1575,7 +1575,11 @@ int main(int argc, char **argv) goto return_main; } - ini_parse(cnf_file_path,cnf_preparser,NULL); + if(ini_parse(cnf_file_path,cnf_preparser,NULL) != 0) + { + rc = MAXSCALE_BADCONFIG; + goto return_main; + } /** Use the cache dir for the mysql folder of the embedded library */ @@ -2076,7 +2080,7 @@ bool handle_path_arg(char** dest, char* path, char* arg, bool rd, bool wr) * @param section Section name * @param name Parameter name * @param value Parameter value - * @return 1 in all cases + * @return 0 on error, 1 when successful */ static int cnf_preparser(void* data, const char* section, const char* name, const char* value) { @@ -2094,14 +2098,24 @@ static int cnf_preparser(void* data, const char* section, const char* name, cons { set_logdir(tmp); } + else + { + return 0; + } } } else if(strcmp(name, "libdir") == 0) { - if(get_libdir() == default_libdir ) + if(strcmp(get_libdir(),default_libdir) == 0 ) { - handle_path_arg(&tmp,(char*)value,NULL,true,false); - set_libdir(tmp); + if(handle_path_arg(&tmp,(char*)value,NULL,true,false)) + { + set_libdir(tmp); + } + else + { + return 0; + } } } else if(strcmp(name, "piddir") == 0) @@ -2112,6 +2126,10 @@ static int cnf_preparser(void* data, const char* section, const char* name, cons { set_piddir(tmp); } + else + { + return 0; + } } } else if(strcmp(name, "datadir") == 0) @@ -2124,14 +2142,24 @@ static int cnf_preparser(void* data, const char* section, const char* name, cons set_datadir(tmp); datadir_defined = true; } + else + { + return 0; + } } } else if(strcmp(name, "cachedir") == 0) { - if(get_cachedir() == default_cachedir) + if(strcmp(get_cachedir(),default_cachedir) == 0) { - handle_path_arg((char**)&tmp,(char*)value,NULL,true,false); - set_cachedir(tmp); + if(handle_path_arg((char**)&tmp,(char*)value,NULL,true,false)) + { + set_cachedir(tmp); + } + else + { + return 0; + } } } else if(strcmp(name, "language") == 0) @@ -2142,6 +2170,10 @@ static int cnf_preparser(void* data, const char* section, const char* name, cons { set_langdir(tmp); } + else + { + return 0; + } } } else if(strcmp(name, "syslog") == 0)