diff options
Diffstat (limited to 'src/util/configuration_loader.c')
-rw-r--r-- | src/util/configuration_loader.c | 15 |
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 | { |