X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrd_restore.c;h=d3a2c8a91c3066d45c046c1b845e1d608a848b2c;hb=40cc8b00296079815f08c2ff55f134efae83ea69;hp=68a037fe6139f1daf949c1489a83dc3e8c08340d;hpb=51fcea2cbf9721f012f2f0d43c604a3aaf684ee8;p=rrdtool.git diff --git a/src/rrd_restore.c b/src/rrd_restore.c index 68a037f..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; @@ -385,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)); @@ -708,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)