258 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			258 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
|  * Copyright (c) 2016 MariaDB Corporation Ab
 | |
|  *
 | |
|  * Use of this software is governed by the Business Source License included
 | |
|  * in the LICENSE.TXT file and at www.mariadb.com/bsl11.
 | |
|  *
 | |
|  * Change Date: 2024-06-02
 | |
|  *
 | |
|  * On the date above, in accordance with the Business Source License, use
 | |
|  * of this software will be governed by version 2 or later of the General
 | |
|  * Public License.
 | |
|  */
 | |
| 
 | |
| #include <maxscale/paths.h>
 | |
| #include <maxbase/alloc.h>
 | |
| #include <maxscale/utils.h>
 | |
| 
 | |
| /**
 | |
|  * Set the configuration file directory
 | |
|  * @param str Path to directory
 | |
|  */
 | |
| void set_configdir(char* str)
 | |
| {
 | |
|     MXS_FREE(configdir);
 | |
|     clean_up_pathname(str);
 | |
|     configdir = str;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Set the module configuration file directory
 | |
|  * @param str Path to directory
 | |
|  */
 | |
| void set_module_configdir(char* str)
 | |
| {
 | |
|     MXS_FREE(module_configdir);
 | |
|     clean_up_pathname(str);
 | |
|     module_configdir = str;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Set the configuration parts file directory
 | |
|  * @param str Path to directory
 | |
|  */
 | |
| void set_config_persistdir(char* str)
 | |
| {
 | |
|     MXS_FREE(config_persistdir);
 | |
|     clean_up_pathname(str);
 | |
|     config_persistdir = str;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Set the log file directory
 | |
|  * @param str Path to directory
 | |
|  */
 | |
| void set_logdir(char* str)
 | |
| {
 | |
|     MXS_FREE(logdir);
 | |
|     clean_up_pathname(str);
 | |
|     logdir = str;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Set the language file directory
 | |
|  * @param str Path to directory
 | |
|  */
 | |
| void set_langdir(char* str)
 | |
| {
 | |
|     MXS_FREE(langdir);
 | |
|     clean_up_pathname(str);
 | |
|     langdir = str;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Set the PID file directory
 | |
|  * @param str Path to directory
 | |
|  */
 | |
| void set_piddir(char* str)
 | |
| {
 | |
|     MXS_FREE(piddir);
 | |
|     clean_up_pathname(str);
 | |
|     piddir = str;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Set the cache directory
 | |
|  * @param str Path to directory
 | |
|  */
 | |
| void set_cachedir(char* param)
 | |
| {
 | |
|     MXS_FREE(cachedir);
 | |
|     clean_up_pathname(param);
 | |
|     cachedir = param;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Set the data directory
 | |
|  * @param str Path to directory
 | |
|  */
 | |
| void set_datadir(char* param)
 | |
| {
 | |
|     MXS_FREE(maxscaledatadir);
 | |
|     clean_up_pathname(param);
 | |
|     maxscaledatadir = param;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Set the data directory
 | |
|  * @param str Path to directory
 | |
|  */
 | |
| void set_process_datadir(char* param)
 | |
| {
 | |
|     MXS_FREE(processdatadir);
 | |
|     clean_up_pathname(param);
 | |
|     processdatadir = param;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Set the library directory. Modules will be loaded from here.
 | |
|  * @param str Path to directory
 | |
|  */
 | |
| void set_libdir(char* param)
 | |
| {
 | |
|     MXS_FREE(libdir);
 | |
|     clean_up_pathname(param);
 | |
|     libdir = param;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Set the executable directory. Internal processes will look for executables
 | |
|  * from here.
 | |
|  * @param str Path to directory
 | |
|  */
 | |
| void set_execdir(char* param)
 | |
| {
 | |
|     MXS_FREE(execdir);
 | |
|     clean_up_pathname(param);
 | |
|     execdir = param;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Set the connector plugin directory.
 | |
|  * @param str Path to directory
 | |
|  */
 | |
| void set_connector_plugindir(char* param)
 | |
| {
 | |
|     MXS_FREE(connector_plugindir);
 | |
|     clean_up_pathname(param);
 | |
|     connector_plugindir = param;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get the directory with all the modules.
 | |
|  * @return The module directory
 | |
|  */
 | |
| char* get_libdir()
 | |
| {
 | |
|     return libdir ? libdir : (char*) default_libdir;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get the service cache directory
 | |
|  * @return The path to the cache directory
 | |
|  */
 | |
| char* get_cachedir()
 | |
| {
 | |
|     return cachedir ? cachedir : (char*) default_cachedir;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get the MaxScale data directory
 | |
|  * @return The path to the data directory
 | |
|  */
 | |
| char* get_datadir()
 | |
| {
 | |
|     return maxscaledatadir ? maxscaledatadir : (char*) default_datadir;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get the process specific data directory
 | |
|  * @return The path to the process specific directory
 | |
|  */
 | |
| char* get_process_datadir()
 | |
| {
 | |
|     return processdatadir ? processdatadir : (char*) default_datadir;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get the configuration file directory
 | |
|  * @return The path to the configuration file directory
 | |
|  */
 | |
| char* get_configdir()
 | |
| {
 | |
|     return configdir ? configdir : (char*) default_configdir;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get the module configuration file directory
 | |
|  * @return The path to the module configuration file directory
 | |
|  */
 | |
| char* get_module_configdir()
 | |
| {
 | |
|     return module_configdir ? module_configdir : (char*) default_module_configdir;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get the configuration file directory
 | |
|  * @return The path to the configuration file directory
 | |
|  */
 | |
| char* get_config_persistdir()
 | |
| {
 | |
|     return config_persistdir ? config_persistdir : (char*) default_config_persistdir;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get the PID file directory which contains maxscale.pid
 | |
|  * @return Path to the PID file directory
 | |
|  */
 | |
| char* get_piddir()
 | |
| {
 | |
|     return piddir ? piddir : (char*) default_piddir;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Return the log file directory
 | |
|  * @return Path to the log file directory
 | |
|  */
 | |
| char* get_logdir()
 | |
| {
 | |
|     return logdir ? logdir : (char*) default_logdir;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Path to the directory which contains the errmsg.sys language file
 | |
|  * @return Path to the language file directory
 | |
|  */
 | |
| char* get_langdir()
 | |
| {
 | |
|     return langdir ? langdir : (char*) default_langdir;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get the directory with the executables.
 | |
|  * @return The executables directory
 | |
|  */
 | |
| char* get_execdir()
 | |
| {
 | |
|     return execdir ? execdir : (char*) default_execdir;
 | |
| }
 | |
| 
 | |
| /**
 | |
|  * Get connector plugin directory
 | |
|  * @return The connector plugin directory
 | |
|  */
 | |
| char* get_connector_plugindir()
 | |
| {
 | |
|     return connector_plugindir ? connector_plugindir : (char*) default_connector_plugindir;
 | |
| }
 | 
