]> git.tuebingen.mpg.de Git - dss.git/blobdiff - dss.c
Loglevel adjustments.
[dss.git] / dss.c
diff --git a/dss.c b/dss.c
index ef42e39cf0923a141eb1d9b3f4f07a1f1a252089..238d8403659bd377a2fea92aad0713264cdbcd5e 100644 (file)
--- a/dss.c
+++ b/dss.c
@@ -214,7 +214,7 @@ static int remove_redundant_snapshot(struct snapshot_list *sl)
        struct snapshot *s;
        unsigned missing = 0;
 
-       DSS_INFO_LOG("looking for intervals containing too many snapshots\n");
+       DSS_DEBUG_LOG("looking for intervals containing too many snapshots\n");
        for (interval = conf.num_intervals_arg - 1; interval >= 0; interval--) {
                unsigned keep = desired_number_of_snapshots(interval, conf.num_intervals_arg);
                unsigned num = sl->interval_count[interval];
@@ -271,7 +271,7 @@ static int remove_outdated_snapshot(struct snapshot_list *sl)
        int i, ret;
        struct snapshot *s;
 
-       DSS_INFO_LOG("looking for snapshots belonging to intervals greater than %d\n",
+       DSS_DEBUG_LOG("looking for snapshots belonging to intervals greater than %d\n",
                conf.num_intervals_arg);
        FOR_EACH_SNAPSHOT(s, i, sl) {
                if (s->interval <= conf.num_intervals_arg)
@@ -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, &params);
        }
@@ -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)
@@ -692,11 +705,6 @@ static void create_rsync_argv(char ***argv, int64_t *num)
                free(newest);
        } else
                DSS_INFO_LOG("no previous snapshot found\n");
-       if (conf.exclude_patterns_given) {
-               (*argv)[i++] = dss_strdup("--exclude-from");
-               (*argv)[i++] = dss_strdup(conf.exclude_patterns_arg);
-
-       }
        logname = dss_logname();
        if (conf.remote_user_given && !strcmp(conf.remote_user_arg, logname))
                (*argv)[i++] = dss_strdup(conf.source_dir_arg);
@@ -738,21 +746,25 @@ static int create_snapshot(char **argv)
 static int select_loop(void)
 {
        int ret;
-       struct timeval tv = {.tv_sec = 0, .tv_usec = 0};
+       /* check every 60 seconds for free disk space */
+       struct timeval tv;
 
        for (;;) {
                fd_set rfds;
                int low_disk_space;
                char **rsync_argv;
-               struct timeval now, *tvp = &tv;
+               struct timeval now, *tvp;
 
-               if (rsync_pid)
-                       tv.tv_sec = 60; /* check every 60 seconds for free disk space */
-               else if (rm_pid)
+               if (rm_pid)
                        tvp = NULL; /* sleep until rm process dies */
+               else { /* sleep one minute */
+                       tv.tv_sec = 60;
+                       tv.tv_usec = 0;
+                       tvp = &tv;
+               }
                FD_ZERO(&rfds);
                FD_SET(signal_pipe, &rfds);
-               DSS_DEBUG_LOG("tvp: %p, tv_sec: %lu\n", tvp, (long unsigned) tv.tv_sec);
+               DSS_DEBUG_LOG("tvp: %p, tv_sec : %lu\n", tvp, (long unsigned) tv.tv_sec);
                ret = dss_select(signal_pipe + 1, &rfds, NULL, tvp);
                if (ret < 0)
                        return ret;
@@ -773,7 +785,7 @@ static int select_loop(void)
                }
                restart_rsync_process();
                gettimeofday(&now, NULL);
-               if (tv_diff(&next_snapshot_time, &now, &tv) > 0)
+               if (tv_diff(&next_snapshot_time, &now, NULL) > 0)
                        continue;
                switch (snapshot_creation_status) {
                case SCS_READY:
@@ -955,7 +967,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, &params); /* aborts on errors */
@@ -963,6 +976,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)