aboutsummaryrefslogtreecommitdiff
path: root/src/util/configuration_loader.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/configuration_loader.c')
-rw-r--r--src/util/configuration_loader.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/util/configuration_loader.c b/src/util/configuration_loader.c
index b9e5cb67f..a59477b25 100644
--- a/src/util/configuration_loader.c
+++ b/src/util/configuration_loader.c
@@ -47,7 +47,8 @@ GNUNET_CONFIGURATION_load (struct GNUNET_CONFIGURATION_Handle *cfg,
47 47
48 base_config_varname = GNUNET_OS_project_data_get ()->base_config_varname; 48 base_config_varname = GNUNET_OS_project_data_get ()->base_config_varname;
49 49
50 if (NULL != (baseconfig = getenv (base_config_varname))) 50 if (NULL != base_config_varname
51 && NULL != (baseconfig = getenv (base_config_varname)))
51 { 52 {
52 baseconfig = GNUNET_strdup (baseconfig); 53 baseconfig = GNUNET_strdup (baseconfig);
53 } 54 }
@@ -62,14 +63,16 @@ GNUNET_CONFIGURATION_load (struct GNUNET_CONFIGURATION_Handle *cfg,
62 GNUNET_free (ipath); 63 GNUNET_free (ipath);
63 } 64 }
64 65
65 if (GNUNET_SYSERR == 66 char *dname = GNUNET_STRINGS_filename_expand (baseconfig);
66 GNUNET_CONFIGURATION_load_from (cfg, 67 GNUNET_free (baseconfig);
67 baseconfig)) 68
69 if (GNUNET_YES == GNUNET_DISK_directory_test (dname, GNUNET_YES) &&
70 GNUNET_SYSERR == GNUNET_CONFIGURATION_load_from (cfg, dname))
68 { 71 {
69 GNUNET_free (baseconfig); 72 GNUNET_free (dname);
70 return GNUNET_SYSERR; /* no configuration at all found */ 73 return GNUNET_SYSERR; /* no configuration at all found */
71 } 74 }
72 GNUNET_free (baseconfig); 75 GNUNET_free (dname);
73 if ((NULL != filename) && 76 if ((NULL != filename) &&
74 (GNUNET_OK != GNUNET_CONFIGURATION_parse (cfg, filename))) 77 (GNUNET_OK != GNUNET_CONFIGURATION_parse (cfg, filename)))
75 { 78 {