aboutsummaryrefslogtreecommitdiff
path: root/src/util/program.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/program.c')
-rw-r--r--src/util/program.c31
1 files changed, 14 insertions, 17 deletions
diff --git a/src/util/program.c b/src/util/program.c
index e34b37370..a79e07d19 100644
--- a/src/util/program.c
+++ b/src/util/program.c
@@ -140,7 +140,6 @@ GNUNET_PROGRAM_run2 (int argc,
140 char *loglev; 140 char *loglev;
141 char *logfile; 141 char *logfile;
142 char *cfg_fn; 142 char *cfg_fn;
143 const char *xdg;
144 enum GNUNET_GenericReturnValue ret; 143 enum GNUNET_GenericReturnValue ret;
145 int iret; 144 int iret;
146 unsigned int cnt; 145 unsigned int cnt;
@@ -149,12 +148,13 @@ GNUNET_PROGRAM_run2 (int argc,
149 long long clock_offset; 148 long long clock_offset;
150 struct GNUNET_CONFIGURATION_Handle *cfg; 149 struct GNUNET_CONFIGURATION_Handle *cfg;
151 const struct GNUNET_OS_ProjectData *pd = GNUNET_OS_project_data_get (); 150 const struct GNUNET_OS_ProjectData *pd = GNUNET_OS_project_data_get ();
152 struct GNUNET_GETOPT_CommandLineOption defoptions[] = 151 struct GNUNET_GETOPT_CommandLineOption defoptions[] = {
153 { GNUNET_GETOPT_option_cfgfile (&cc.cfgfile), 152 GNUNET_GETOPT_option_cfgfile (&cc.cfgfile),
154 GNUNET_GETOPT_option_help (binaryHelp), 153 GNUNET_GETOPT_option_help (binaryHelp),
155 GNUNET_GETOPT_option_loglevel (&loglev), 154 GNUNET_GETOPT_option_loglevel (&loglev),
156 GNUNET_GETOPT_option_logfile (&logfile), 155 GNUNET_GETOPT_option_logfile (&logfile),
157 GNUNET_GETOPT_option_version (pd->version) }; 156 GNUNET_GETOPT_option_version (pd->version)
157 };
158 struct GNUNET_GETOPT_CommandLineOption *allopts; 158 struct GNUNET_GETOPT_CommandLineOption *allopts;
159 const char *gargs; 159 const char *gargs;
160 char *lpfx; 160 char *lpfx;
@@ -219,17 +219,7 @@ GNUNET_PROGRAM_run2 (int argc,
219 &cmd_sorter); 219 &cmd_sorter);
220 loglev = NULL; 220 loglev = NULL;
221 if ((NULL != pd->config_file) && (NULL != pd->user_config_file)) 221 if ((NULL != pd->config_file) && (NULL != pd->user_config_file))
222 { 222 cfg_fn = GNUNET_CONFIGURATION_default_filename ();
223 xdg = getenv ("XDG_CONFIG_HOME");
224 if (NULL != xdg)
225 GNUNET_asprintf (&cfg_fn,
226 "%s%s%s",
227 xdg,
228 DIR_SEPARATOR_STR,
229 pd->config_file);
230 else
231 cfg_fn = GNUNET_strdup (pd->user_config_file);
232 }
233 else 223 else
234 cfg_fn = NULL; 224 cfg_fn = NULL;
235 lpfx = GNUNET_strdup (binaryName); 225 lpfx = GNUNET_strdup (binaryName);
@@ -251,6 +241,9 @@ GNUNET_PROGRAM_run2 (int argc,
251 } 241 }
252 if (NULL != cc.cfgfile) 242 if (NULL != cc.cfgfile)
253 { 243 {
244 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
245 "Loading configuration from entry point specified as option (%s)\n",
246 cc.cfgfile);
254 if ((GNUNET_YES != GNUNET_DISK_file_test (cc.cfgfile)) || 247 if ((GNUNET_YES != GNUNET_DISK_file_test (cc.cfgfile)) ||
255 (GNUNET_SYSERR == GNUNET_CONFIGURATION_load (cfg, cc.cfgfile))) 248 (GNUNET_SYSERR == GNUNET_CONFIGURATION_load (cfg, cc.cfgfile)))
256 { 249 {
@@ -266,6 +259,9 @@ GNUNET_PROGRAM_run2 (int argc,
266 } 259 }
267 else 260 else
268 { 261 {
262 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
263 "Loading configuration default entry point (%s)\n",
264 cc.cfgfile);
269 if ((NULL != cfg_fn) && (GNUNET_YES == GNUNET_DISK_file_test (cfg_fn))) 265 if ((NULL != cfg_fn) && (GNUNET_YES == GNUNET_DISK_file_test (cfg_fn)))
270 { 266 {
271 if (GNUNET_SYSERR == GNUNET_CONFIGURATION_load (cfg, cfg_fn)) 267 if (GNUNET_SYSERR == GNUNET_CONFIGURATION_load (cfg, cfg_fn))
@@ -283,8 +279,9 @@ GNUNET_PROGRAM_run2 (int argc,
283 } 279 }
284 else if (NULL != cfg_fn) 280 else if (NULL != cfg_fn)
285 { 281 {
282 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
283 "Loading configuration without entry point\n");
286 GNUNET_free (cfg_fn); 284 GNUNET_free (cfg_fn);
287 cfg_fn = NULL;
288 if (GNUNET_OK != GNUNET_CONFIGURATION_load (cfg, NULL)) 285 if (GNUNET_OK != GNUNET_CONFIGURATION_load (cfg, NULL))
289 { 286 {
290 GNUNET_log (GNUNET_ERROR_TYPE_ERROR, 287 GNUNET_log (GNUNET_ERROR_TYPE_ERROR,
@@ -349,7 +346,7 @@ GNUNET_PROGRAM_run2 (int argc,
349 cc.task (cc.task_cls, cc.args, cc.cfgfile, cc.cfg); 346 cc.task (cc.task_cls, cc.args, cc.cfgfile, cc.cfg);
350 } 347 }
351 ret = GNUNET_OK; 348 ret = GNUNET_OK;
352cleanup: 349 cleanup:
353 GNUNET_CONFIGURATION_destroy (cfg); 350 GNUNET_CONFIGURATION_destroy (cfg);
354 GNUNET_free (cc.cfgfile); 351 GNUNET_free (cc.cfgfile);
355 GNUNET_free (cfg_fn); 352 GNUNET_free (cfg_fn);