master
c 56 lines 3.2 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2 //
3 // Storage and netdata.conf loaders for the netdata_configured_*
4 // globals. Compile-time defaults come from build/config.h via the
5 // libnetdata.h chain.
6
7 #include "../libnetdata.h"
8
9 const char *netdata_configured_hostname = NULL;
10 const char *netdata_configured_user_config_dir = CONFIG_DIR;
11 const char *netdata_configured_stock_config_dir = LIBCONFIG_DIR;
12 const char *netdata_configured_stock_data_dir = STOCK_DATA_DIR;
13 const char *netdata_configured_log_dir = LOG_DIR;
14 const char *netdata_configured_primary_plugins_dir = PLUGINS_DIR;
15 const char *netdata_configured_web_dir = WEB_DIR;
16 const char *netdata_configured_cache_dir = CACHE_DIR;
17 const char *netdata_configured_varlib_dir = VARLIB_DIR;
18 const char *netdata_configured_cloud_dir = VARLIB_DIR "/cloud.d";
19 const char *netdata_configured_home_dir = VARLIB_DIR;
20 const char *netdata_configured_host_prefix = NULL;
21
22 // ----------------------------------------------------------------------------
23 // netdata.conf loaders
24
25 static const char *get_varlib_subdir_from_config(const char *prefix, const char *dir) {
26 char filename[FILENAME_MAX + 1];
27 snprintfz(filename, FILENAME_MAX, "%s/%s", prefix, dir);
28 return inicfg_get_path(&netdata_config, CONFIG_SECTION_DIRECTORIES, dir, filename);
29 }
30
31 void nd_runtime_paths_load_directories_from_inicfg(void) {
32 FUNCTION_RUN_ONCE();
33
34 netdata_configured_user_config_dir = inicfg_get_path(&netdata_config, CONFIG_SECTION_DIRECTORIES, "config", netdata_configured_user_config_dir);
35 netdata_configured_stock_config_dir = inicfg_get_path(&netdata_config, CONFIG_SECTION_DIRECTORIES, "stock config", netdata_configured_stock_config_dir);
36 netdata_configured_stock_data_dir = inicfg_get_path(&netdata_config, CONFIG_SECTION_DIRECTORIES, "stock data", netdata_configured_stock_data_dir);
37 netdata_configured_log_dir = inicfg_get_path(&netdata_config, CONFIG_SECTION_DIRECTORIES, "log", netdata_configured_log_dir);
38 netdata_configured_web_dir = inicfg_get_path(&netdata_config, CONFIG_SECTION_DIRECTORIES, "web", netdata_configured_web_dir);
39 netdata_configured_cache_dir = inicfg_get_path(&netdata_config, CONFIG_SECTION_DIRECTORIES, "cache", netdata_configured_cache_dir);
40 netdata_configured_varlib_dir = inicfg_get_path(&netdata_config, CONFIG_SECTION_DIRECTORIES, "lib", netdata_configured_varlib_dir);
41 netdata_configured_cloud_dir = get_varlib_subdir_from_config(netdata_configured_varlib_dir, "cloud.d");
42 }
43
44 void nd_runtime_paths_load_hostname_from_inicfg(void) {
45 FUNCTION_RUN_ONCE();
46
47 netdata_configured_host_prefix = inicfg_get(&netdata_config, CONFIG_SECTION_GLOBAL, "host access prefix", "");
48 (void) verify_netdata_host_prefix(true);
49
50 char buf[HOST_NAME_MAX * 4 + 1] = "";
51 if (!os_hostname(buf, sizeof(buf), netdata_configured_host_prefix))
52 netdata_log_error("Cannot get machine hostname.");
53
54 netdata_configured_hostname = inicfg_get(&netdata_config, CONFIG_SECTION_GLOBAL, "hostname", buf);
55 netdata_log_debug(D_OPTIONS, "hostname set to '%s'", netdata_configured_hostname);
56 }