X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=client-src%2Fsendsize.c;h=d005fe0dc1872f82525aa4aac561c1a667855944;hb=HEAD;hp=8eb5c046c56afe7ca5e13589afefbadf3445b137;hpb=42ff24f2a525d5965e1841b2ebe3ee0f4b918ac6;p=debian%2Famanda diff --git a/client-src/sendsize.c b/client-src/sendsize.c index 8eb5c04..d005fe0 100644 --- a/client-src/sendsize.c +++ b/client-src/sendsize.c @@ -1,6 +1,7 @@ /* * Amanda, The Advanced Maryland Automatic Network Disk Archiver * Copyright (c) 1991-1998 University of Maryland at College Park + * Copyright (c) 2007-2012 Zmanda, Inc. All Rights Reserved. * All Rights Reserved. * * Permission to use, copy, modify, distribute, and sell this software and its @@ -122,6 +123,7 @@ main( disk_estimates_t *est; disk_estimates_t *est1; disk_estimates_t *est_prev; + disk_estimates_t *est_next; char *line = NULL; char *s, *fp; int ch; @@ -134,11 +136,16 @@ main( char *qamdevice = NULL; dle_t *dle; GSList *errlist; - level_t *alevel; + am_level_t *alevel; (void)argc; /* Quiet unused parameter warning */ (void)argv; /* Quiet unused parameter warning */ + if (argc > 1 && argv && argv[1] && g_str_equal(argv[1], "--version")) { + printf("sendsize-%s\n", VERSION); + return (0); + } + /* initialize */ /* @@ -316,7 +323,7 @@ main( goto err; } skip_integer(s, ch); - alevel = g_new0(level_t, 1); + alevel = g_new0(am_level_t, 1); alevel->level = level; dle->levellist = g_slist_append(dle->levellist, alevel); @@ -413,6 +420,20 @@ main( amandates_started = FALSE; } + est_prev = NULL; + for(est = est_list; est != NULL; est = est_next) { + int good = merge_dles_properties(est->dle, 0); + est_next = est->next; + if (!good) { + if (est == est_list) { + est_list = est_next; + } else { + est_prev->next = est_next; + } + } else { + est_prev = est; + } + } for(est = est_list; est != NULL; est = est->next) { run_client_scripts(EXECUTE_ON_PRE_HOST_ESTIMATE, g_options, est->dle, stdout); @@ -617,7 +638,7 @@ dle_add_diskest( levellist = dle->levellist; while (levellist != NULL) { - level_t *alevel = (level_t *)levellist->data; + am_level_t *alevel = (am_level_t *)levellist->data; if (alevel->level < 0) alevel->level = 0; if (alevel->level >= DUMP_LEVELS) @@ -630,7 +651,7 @@ dle_add_diskest( /* already have disk info, just note the level request */ levellist = dle->levellist; while (levellist != NULL) { - level_t *alevel = (level_t *)levellist->data; + am_level_t *alevel = (am_level_t *)levellist->data; int level = alevel->level; curp->est[level].needestimate = 1; curp->est[level].server = alevel->server; @@ -657,7 +678,7 @@ dle_add_diskest( } levellist = dle->levellist; while (levellist != NULL) { - level_t *alevel = (level_t *)levellist->data; + am_level_t *alevel = (am_level_t *)levellist->data; newp->est[alevel->level].needestimate = 1; newp->est[alevel->level].server = alevel->server; levellist = g_slist_next(levellist); @@ -992,7 +1013,6 @@ generic_calc_estimates( char *file_include = NULL; times_t start_time; FILE *dumpout = NULL; - off_t size = (off_t)1; char *line = NULL; char *match_expr; amwait_t wait_status; @@ -1082,7 +1102,7 @@ generic_calc_estimates( } match_expr = vstralloc(" %d SIZE %lld", NULL); len = strlen(est->qamname); - for(size = (off_t)-1; (line = agets(dumpout)) != NULL; free(line)) { + for(; (line = agets(dumpout)) != NULL; free(line)) { long long size_ = (long long)0; if (line[0] == '\0' || (int)strlen(line) <= len) continue; @@ -1095,7 +1115,6 @@ generic_calc_estimates( level, size_); } - size = (off_t)size_; } amfree(match_expr);