diff --git a/src/rrd_update.c b/src/rrd_update.c
index c830c6afabd19cde9cf2adde624eeb8c01d9fa02..7f4c9c0c3111ea7acd909e2a610850d6cb2a7872 100644 (file)
--- a/src/rrd_update.c
+++ b/src/rrd_update.c
/*****************************************************************************
/*****************************************************************************
- * RRDtool 1.3rc4 Copyright by Tobi Oetiker, 1997-2008
+ * RRDtool 1.3rc9 Copyright by Tobi Oetiker, 1997-2008
*****************************************************************************
* rrd_update.c RRD Update Function
*****************************************************************************
*****************************************************************************
* rrd_update.c RRD Update Function
*****************************************************************************
- * $Id: rrd_update.c 1366 2008-05-18 13:06:44Z oetiker $
+ * $Id: rrd_update.c 1413 2008-06-08 17:08:47Z oetiker $
*****************************************************************************/
#include "rrd_tool.h"
*****************************************************************************/
#include "rrd_tool.h"
const char *tmplt,
int argc,
const char **argv,
const char *tmplt,
int argc,
const char **argv,
- info_t *);
+ rrd_info_t *);
static int allocate_data_structures(
rrd_t *rrd,
static int allocate_data_structures(
rrd_t *rrd,
char **updvals,
long *tmpl_idx,
unsigned long tmpl_cnt,
char **updvals,
long *tmpl_idx,
unsigned long tmpl_cnt,
- info_t **pcdp_summary,
+ rrd_info_t **pcdp_summary,
int version,
unsigned long *skip_update,
int *schedule_smooth);
int version,
unsigned long *skip_update,
int *schedule_smooth);
unsigned long *rra_current,
time_t current_time,
unsigned long *skip_update,
unsigned long *rra_current,
time_t current_time,
unsigned long *skip_update,
- info_t **pcdp_summary);
+ rrd_info_t **pcdp_summary);
static int write_RRA_row(
rrd_file_t *rrd_file,
static int write_RRA_row(
rrd_file_t *rrd_file,
unsigned long rra_idx,
unsigned long *rra_current,
unsigned short CDP_scratch_idx,
unsigned long rra_idx,
unsigned long *rra_current,
unsigned short CDP_scratch_idx,
- info_t **pcdp_summary,
+ rrd_info_t **pcdp_summary,
time_t rra_time);
static int smooth_all_rras(
time_t rra_time);
static int smooth_all_rras(
#define IFDNAN(X,Y) (isnan(X) ? (Y) : (X));
#define IFDNAN(X,Y) (isnan(X) ? (Y) : (X));
-info_t *rrd_update_v(
+rrd_info_t *rrd_update_v(
int argc,
char **argv)
{
char *tmplt = NULL;
int argc,
char **argv)
{
char *tmplt = NULL;
- info_t *result = NULL;
- infoval rc;
+ rrd_info_t *result = NULL;
+ rrd_infoval_t rc;
struct option long_options[] = {
{"template", required_argument, 0, 't'},
{0, 0, 0, 0}
struct option long_options[] = {
{"template", required_argument, 0, 't'},
{0, 0, 0, 0}
goto end_tag;
}
rc.u_int = 0;
goto end_tag;
}
rc.u_int = 0;
- result = info_push(NULL, sprintf_alloc("return_value"), RD_I_INT, rc);
+ result = rrd_info_push(NULL, sprintf_alloc("return_value"), RD_I_INT, rc);
rc.u_int = _rrd_update(argv[optind], tmplt,
argc - optind - 1,
(const char **) (argv + optind + 1), result);
rc.u_int = _rrd_update(argv[optind], tmplt,
argc - optind - 1,
(const char **) (argv + optind + 1), result);
const char *tmplt,
int argc,
const char **argv,
const char *tmplt,
int argc,
const char **argv,
- info_t *pcdp_summary)
+ rrd_info_t *pcdp_summary)
{
int arg_i = 2;
{
int arg_i = 2;
/* get exclusive lock to whole file.
* lock gets removed when we close the file.
*/
/* get exclusive lock to whole file.
* lock gets removed when we close the file.
*/
- if (LockRRD(rrd_file->fd) != 0) {
+ if (rrd_lock(rrd_file) != 0) {
rrd_set_error("could not lock RRD");
goto err_close;
}
rrd_set_error("could not lock RRD");
goto err_close;
}
*
* returns 0 on success
*/
*
* returns 0 on success
*/
-int LockRRD(
- int in_file)
+int rrd_lock(
+ rrd_file_t *file)
{
int rcstat;
{
int rcstat;
#if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__CYGWIN32__)
struct _stat st;
#if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__CYGWIN32__)
struct _stat st;
- if (_fstat(in_file, &st) == 0) {
- rcstat = _locking(in_file, _LK_NBLCK, st.st_size);
+ if (_fstat(file->fd, &st) == 0) {
+ rcstat = _locking(file->fd, _LK_NBLCK, st.st_size);
} else {
rcstat = -1;
}
} else {
rcstat = -1;
}
lock.l_start = 0; /* start of file */
lock.l_whence = SEEK_SET; /* end of file */
lock.l_start = 0; /* start of file */
lock.l_whence = SEEK_SET; /* end of file */
- rcstat = fcntl(in_file, F_SETLK, &lock);
+ rcstat = fcntl(file->fd, F_SETLK, &lock);
#endif
}
#endif
}
char **updvals,
long *tmpl_idx,
unsigned long tmpl_cnt,
char **updvals,
long *tmpl_idx,
unsigned long tmpl_cnt,
- info_t **pcdp_summary,
+ rrd_info_t **pcdp_summary,
int version,
unsigned long *skip_update,
int *schedule_smooth)
int version,
unsigned long *skip_update,
int *schedule_smooth)
rrd->live_head->last_up = *current_time;
rrd->live_head->last_up_usec = *current_time_usec;
rrd->live_head->last_up = *current_time;
rrd->live_head->last_up_usec = *current_time_usec;
+ if (version < 3) {
+ *rrd->legacy_last_up = rrd->live_head->last_up;
+ }
free(seasonal_coef);
free(last_seasonal_coef);
return 0;
free(seasonal_coef);
free(last_seasonal_coef);
return 0;
double tmp;
char *parsetime_error = NULL;
char *old_locale;
double tmp;
char *parsetime_error = NULL;
char *old_locale;
- struct rrd_time_value ds_tv;
+ rrd_time_value_t ds_tv;
struct timeval tmp_time; /* used for time conversion */
/* get the time from the reading ... handle N */
if (timesyntax == '@') { /* at-style */
struct timeval tmp_time; /* used for time conversion */
/* get the time from the reading ... handle N */
if (timesyntax == '@') { /* at-style */
- if ((parsetime_error = parsetime(updvals[0], &ds_tv))) {
+ if ((parsetime_error = rrd_parsetime(updvals[0], &ds_tv))) {
rrd_set_error("ds time: %s: %s", updvals[0], parsetime_error);
return -1;
}
rrd_set_error("ds time: %s: %s", updvals[0], parsetime_error);
return -1;
}
unsigned long *rra_current,
time_t current_time,
unsigned long *skip_update,
unsigned long *rra_current,
time_t current_time,
unsigned long *skip_update,
- info_t **pcdp_summary)
+ rrd_info_t **pcdp_summary)
{
unsigned long rra_idx;
unsigned long rra_start;
{
unsigned long rra_idx;
unsigned long rra_start;
unsigned long rra_idx,
unsigned long *rra_current,
unsigned short CDP_scratch_idx,
unsigned long rra_idx,
unsigned long *rra_current,
unsigned short CDP_scratch_idx,
- info_t **pcdp_summary,
+ rrd_info_t **pcdp_summary,
time_t rra_time)
{
unsigned long ds_idx, cdp_idx;
time_t rra_time)
{
unsigned long ds_idx, cdp_idx;
- infoval iv;
+ rrd_infoval_t iv;
for (ds_idx = 0; ds_idx < rrd->stat_head->ds_cnt; ds_idx++) {
/* compute the cdp index */
for (ds_idx = 0; ds_idx < rrd->stat_head->ds_cnt; ds_idx++) {
/* compute the cdp index */
if (*pcdp_summary != NULL) {
iv.u_val = rrd->cdp_prep[cdp_idx].scratch[CDP_scratch_idx].u_val;
/* append info to the return hash */
if (*pcdp_summary != NULL) {
iv.u_val = rrd->cdp_prep[cdp_idx].scratch[CDP_scratch_idx].u_val;
/* append info to the return hash */
- *pcdp_summary = info_push(*pcdp_summary,
+ *pcdp_summary = rrd_info_push(*pcdp_summary,
sprintf_alloc("[%d]RRA[%s][%lu]DS[%s]",
rra_time,
rrd->rra_def[rra_idx].
sprintf_alloc("[%d]RRA[%s][%lu]DS[%s]",
rra_time,
rrd->rra_def[rra_idx].
return -1;
}
} else {
return -1;
}
} else {
- if (rrd_write(rrd_file, &rrd->live_head->last_up,
+ if (rrd_write(rrd_file, rrd->legacy_last_up,
sizeof(time_t) * 1) != sizeof(time_t) * 1) {
rrd_set_error("rrd_write live_head to rrd");
return -1;
sizeof(time_t) * 1) != sizeof(time_t) * 1) {
rrd_set_error("rrd_write live_head to rrd");
return -1;