Fixed bad directory names in config not causing MaxScale to exit.
This commit is contained in:
parent
df7b8f85ce
commit
d6b587ad59
@ -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)
|
||||
|
Loading…
x
Reference in New Issue
Block a user