X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrd_restore.c;h=cd3d1ed3e6bd7603247f3bccfbe2b04b353b6bc4;hb=0881b8848ab8c1cb9b50db4599d4adc9391a774d;hp=e759c1c3028a6c895aeef2ab4ddc2f21e4adce1d;hpb=61a736a2e1ad057f78cb5c2245207c9d02d86f29;p=rrdtool.git diff --git a/src/rrd_restore.c b/src/rrd_restore.c index e759c1c..cd3d1ed 100644 --- a/src/rrd_restore.c +++ b/src/rrd_restore.c @@ -1,5 +1,5 @@ /***************************************************************************** - * RRDtool 1.1.x Copyright Tobias Oetiker, 1997 - 2004 + * RRDtool 1.2.12 Copyright by Tobi Oetiker, 1997-2005 ***************************************************************************** * rrd_restore.c creates new rrd from data dumped by rrd_dump.c *****************************************************************************/ @@ -8,6 +8,12 @@ #include "rrd_rpncalc.h" #include +#if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__CYGWIN32__) +#include +#define open _open +#define close _close +#endif + /* Prototypes */ void xml_lc(char*); @@ -126,13 +132,11 @@ int xml2rrd(char* buf, rrd_t* rrd, char rc){ { rrd_set_error("Incompatible file version, detected version %s is bigger than supported version %s\n", rrd -> stat_head -> version, RRD_VERSION ); - free(rrd -> stat_head); return -1; } if (atoi(rrd -> stat_head -> version) < 2) { - rrd_set_error("Can only restore version >= 2 (Not %s). Dump your rrd using a current rrdtool dump.", rrd -> stat_head -> version ); - free(rrd -> stat_head); + 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; } rrd->stat_head->float_cookie = FLOAT_COOKIE; @@ -169,7 +173,7 @@ int xml2rrd(char* buf, rrd_t* rrd, char rc){ read_tag(&ptr2,"type",DST_FMT,rrd->ds_def[rrd->stat_head->ds_cnt-1].dst); /* test for valid type */ - if(dst_conv(rrd->ds_def[rrd->stat_head->ds_cnt-1].dst) == -1) return -1; + if( (int)dst_conv(rrd->ds_def[rrd->stat_head->ds_cnt-1].dst) == -1) return -1; if (dst_conv(rrd->ds_def[rrd->stat_head->ds_cnt-1].dst) != DST_CDEF) { @@ -211,7 +215,7 @@ int xml2rrd(char* buf, rrd_t* rrd, char rc){ read_tag(&ptr2,"cf",CF_NAM_FMT,rrd->rra_def[rrd->stat_head->rra_cnt-1].cf_nam); /* test for valid type */ - if(cf_conv(rrd->rra_def[rrd->stat_head->rra_cnt-1].cf_nam) == -1) return -1; + if( (int)cf_conv(rrd->rra_def[rrd->stat_head->rra_cnt-1].cf_nam) == -1) return -1; read_tag(&ptr2,"pdp_per_row","%lu",&(rrd->rra_def[rrd->stat_head->rra_cnt-1].pdp_cnt)); /* support to read RRA parameters */ @@ -265,7 +269,7 @@ int xml2rrd(char* buf, rrd_t* rrd, char rc){ } eat_tag(&ptr2, "/params"); eat_tag(&ptr2,"cdp_prep"); - for(i=0;istat_head->ds_cnt;i++) + for(i=0;i< (int)rrd->stat_head->ds_cnt;i++) { eat_tag(&ptr2,"ds"); /* support to read CDP parameters */ @@ -348,7 +352,7 @@ int xml2rrd(char* buf, rrd_t* rrd, char rc){ rows++; mempool--; rrd->rra_def[rrd->stat_head->rra_cnt-1].row_cnt++; - for(i=0;istat_head->ds_cnt;i++){ + for(i=0;i< (int)rrd->stat_head->ds_cnt;i++){ rrd_value_t * value = &(rrd->rrd_value[(rows-1)*rrd->stat_head->ds_cnt+i]); @@ -387,7 +391,7 @@ int xml2rrd(char* buf, rrd_t* rrd, char rc){ return(-1); } - for(i=0; i stat_head->rra_cnt; i++) { + for(i=0; i < (int)rrd->stat_head->rra_cnt; i++) { /* last row in the xml file is the most recent; as * rrd_update increments the current row pointer, set cur_row * here to the last row. */ @@ -415,7 +419,7 @@ rrd_write(char *file_name, rrd_t *rrd, char force_overwrite) if (strcmp("-",file_name)==0){ rrd_file= stdout; } else { -#ifdef WIN32 +#if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__CYGWIN32__) fdflags = O_RDWR|O_BINARY|O_CREAT; #else fdflags = O_WRONLY|O_CREAT; @@ -482,6 +486,7 @@ rrd_restore(int argc, char **argv) char force_overwrite = 0; /* init rrd clean */ + optind = 0; opterr = 0; /* initialize getopt */ rrd_init(&rrd); if (argc<3) { rrd_set_error("usage rrdtool %s [--range-check/-r] [--force-overwrite/-f] file.xml file.rrd",argv[0]); @@ -499,7 +504,7 @@ rrd_restore(int argc, char **argv) int opt; - opt = getopt_long(argc, argv, "r:f", long_options, &option_index); + opt = getopt_long(argc, argv, "rf", long_options, &option_index); if (opt == EOF) break;