X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=dss.c;h=413f88df90271603b344bd778fb8d3f4282a9520;hb=7c6b83b224d74491f0d47760dcdd47f39df3751a;hp=ef42e39cf0923a141eb1d9b3f4f07a1f1a252089;hpb=cf071bc345919c98c3c0e8737d731bd95411bd67;p=dss.git diff --git a/dss.c b/dss.c index ef42e39..413f88d 100644 --- a/dss.c +++ b/dss.c @@ -603,7 +603,8 @@ static void parse_config_file(int override) .override = override, .initialize = 0, .check_required = 1, - .check_ambiguity = 0 + .check_ambiguity = 0, + .print_errors = 1 }; cmdline_parser_config_file(config_file, &conf, ¶ms); } @@ -628,7 +629,6 @@ static void parse_config_file(int override) } DSS_EMERG_LOG("loglevel: %d\n", conf.loglevel_arg); // cmdline_parser_dump(logfile? logfile : stdout, &conf); - ret = dss_chdir(conf.dest_dir_arg); out: free(config_file); if (ret >= 0) @@ -637,10 +637,23 @@ out: exit(EXIT_FAILURE); } +static void change_to_dest_dir(void) +{ + int ret; + + DSS_INFO_LOG("changing cwd to %s\n", conf.dest_dir_arg); + ret = dss_chdir(conf.dest_dir_arg); + if (ret >= 0) + return; + DSS_EMERG_LOG("%s\n", dss_strerror(-ret)); + exit(EXIT_FAILURE); +} + static void handle_sighup(void) { DSS_NOTICE_LOG("SIGHUP\n"); parse_config_file(1); + change_to_dest_dir(); } static void handle_signal(void) @@ -955,7 +968,8 @@ int main(int argc, char **argv) .override = 0, .initialize = 1, .check_required = 0, - .check_ambiguity = 0 + .check_ambiguity = 0, + .print_errors = 1 }; cmdline_parser_ext(argc, argv, &conf, ¶ms); /* aborts on errors */ @@ -963,6 +977,7 @@ int main(int argc, char **argv) if (conf.daemon_given) daemon_init(); + change_to_dest_dir(); setup_signal_handling(); ret = call_command_handler(); if (ret < 0)