X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrd_restore.c;h=d3a2c8a91c3066d45c046c1b845e1d608a848b2c;hb=b68abb4d45e269cf95a5280e0eaf7b3b4f6554d3;hp=368f7bcfbb041ee6de6d4ead1ce5a2d414351114;hpb=2a6a270edfda89b04722b42b57992907f871c671;p=rrdtool.git diff --git a/src/rrd_restore.c b/src/rrd_restore.c index 368f7bc..d3a2c8a 100644 --- a/src/rrd_restore.c +++ b/src/rrd_restore.c @@ -1,5 +1,5 @@ /***************************************************************************** - * RRDtool 1.2.23 Copyright by Tobi Oetiker, 1997-2007 + * RRDtool 1.2.99907080300 Copyright by Tobi Oetiker, 1997-2007 ***************************************************************************** * rrd_restore.c creates new rrd from data dumped by rrd_dump.c *****************************************************************************/ @@ -223,14 +223,12 @@ int xml2rrd( rrd->stat_head = NULL; return -1; } - /* make sure we output the right version */ - strcpy(rrd->stat_head->version, RRD_VERSION); - - /* if (atoi(rrd -> stat_head -> version) < 2) - { - rrd_set_error("Can only restore version >= 2 (Not %s). Dump your old rrd using a current rrdtool dump.", rrd -> stat_head -> version ); - return -1; - } */ + /* make sure we output the right version only go over 3 if input is over 3 too */ + if (input_version > 3) { + strcpy(rrd->stat_head->version, RRD_VERSION); + } else { + strcpy(rrd->stat_head->version, RRD_VERSION3); + } rrd->stat_head->float_cookie = FLOAT_COOKIE; rrd->stat_head->ds_cnt = 0; @@ -366,6 +364,7 @@ int xml2rrd( } else { switch (cf_conv(rrd->rra_def[rra_index].cf_nam)) { case CF_HWPREDICT: + case CF_MHWPREDICT: read_tag(&ptr2, "hw_alpha", "%lf", &(rrd->rra_def[rra_index].par[RRA_hw_alpha]. u_val)); @@ -384,6 +383,11 @@ int xml2rrd( read_tag(&ptr2, "seasonal_smooth_idx", "%lu", &(rrd->rra_def[rra_index]. par[RRA_seasonal_smooth_idx].u_cnt)); + if (atoi(rrd->stat_head->version) >= 4) { + read_tag(&ptr2, "smoothing_window", "%lf", + &(rrd->rra_def[rra_index]. + par[RRA_seasonal_smoothing_window].u_val)); + } read_tag(&ptr2, "dependent_rra_idx", "%lu", &(rrd->rra_def[rra_index]. par[RRA_dependent_rra_idx].u_cnt)); @@ -456,6 +460,7 @@ int xml2rrd( i].scratch[CDP_secondary_val].u_val)); switch (cf_conv(rrd->rra_def[rra_index].cf_nam)) { case CF_HWPREDICT: + case CF_MHWPREDICT: read_tag(&ptr2, "intercept", "%lf", &(rrd-> cdp_prep[rrd->stat_head->ds_cnt * @@ -706,20 +711,19 @@ int rrd_restore( char *buf; char rc = 0; char force_overwrite = 0; + struct option long_options[] = { + {"range-check", no_argument, 0, 'r'}, + {"force-overwrite", no_argument, 0, 'f'}, + {0, 0, 0, 0} + }; /* init rrd clean */ optind = 0; opterr = 0; /* initialize getopt */ while (1) { - static struct option long_options[] = { - {"range-check", no_argument, 0, 'r'}, - {"force-overwrite", no_argument, 0, 'f'}, - {0, 0, 0, 0} - }; int option_index = 0; int opt; - opt = getopt_long(argc, argv, "rf", long_options, &option_index); if (opt == EOF)