X-Git-Url: http://git.tuebingen.mpg.de/?p=dss.git;a=blobdiff_plain;f=dss.c;h=3e626ab0113b1890277da115ea6c735dbdb690d7;hp=5e2ef46f71251c6a157f2f9df02900c8e534a3a9;hb=2af5575f983be85475a72882a261731e99098b02;hpb=2d10a72798da5489363088dfbe02ccbc5942cfcd diff --git a/dss.c b/dss.c index 5e2ef46..3e626ab 100644 --- a/dss.c +++ b/dss.c @@ -1347,6 +1347,7 @@ static void create_rsync_argv(char ***argv, int64_t *num) char *logname; int i = 0, j, N = OPT_GIVEN(DSS, RSYNC_OPTION); struct snapshot_list sl; + static bool seeded; dss_get_snapshot_list(&sl); assert(!name_of_reference_snapshot); @@ -1357,6 +1358,14 @@ static void create_rsync_argv(char ***argv, int64_t *num) (*argv)[i++] = dss_strdup("rsync"); (*argv)[i++] = dss_strdup("-a"); (*argv)[i++] = dss_strdup("--delete"); + if (!seeded) { + srandom((unsigned)time(NULL)); /* no need to be fancy here */ + seeded = true; + } + if (1000 * (random() / (RAND_MAX + 1.0)) < OPT_UINT32_VAL(DSS, CHECKSUM)) { + DSS_NOTICE_LOG(("adding --checksum to rsync options\n")); + (*argv)[i++] = dss_strdup("--checksum"); + } for (j = 0; j < N; j++) (*argv)[i++] = dss_strdup(lls_string_val(j, OPT_RESULT(DSS, RSYNC_OPTION)));