X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;ds=inline;f=dss.c;h=413f88df90271603b344bd778fb8d3f4282a9520;hb=7c6b83b224d74491f0d47760dcdd47f39df3751a;hp=cee0f07a7e2de5dd78af2da8aa6e8fd025958cb9;hpb=333c11eb6772cc3a020ae1ab354512519a3771b9;p=dss.git diff --git a/dss.c b/dss.c index cee0f07..413f88d 100644 --- a/dss.c +++ b/dss.c @@ -133,6 +133,9 @@ static int disk_space_low(void) if (conf.min_free_percent_arg) if (ds.percent_free < conf.min_free_percent_arg) return 1; + if (conf.min_free_percent_inodes_arg) + if (ds.percent_free_inodes < conf.min_free_percent_inodes_arg) + return 1; return 0; } @@ -600,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); } @@ -625,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) @@ -634,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) @@ -952,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 */ @@ -960,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)