diff --git a/src/utils_cmd_putval.c b/src/utils_cmd_putval.c
index 15cd939b00610b68215d8b54143e435d50530c8a..89c55287786565322168cdd32aad89fef256299d 100644 (file)
--- a/src/utils_cmd_putval.c
+++ b/src/utils_cmd_putval.c
if (strcasecmp ("interval", key) == 0)
{
- int tmp;
+ double tmp;
char *endptr;
endptr = NULL;
errno = 0;
- tmp = strtol (value, &endptr, 0);
+ tmp = strtod (value, &endptr);
if ((errno == 0) && (endptr != NULL)
- && (endptr != value) && (tmp > 0))
- vl->interval = tmp;
+ && (endptr != value) && (tmp > 0.0))
+ vl->interval = DOUBLE_TO_CDTIME_T (tmp);
}
else
return (1);
return (0);
} /* int parse_option */
-int handle_putval (FILE *fh, char *buffer)
+int handle_putval (FILE *fh, char *buffer, cdtime_t default_interval)
{
char *command;
char *identifier;
char *identifier_copy;
const data_set_t *ds;
- value_list_t vl = VALUE_LIST_INIT;
+ value_list_t vl = VALUE_LIST_INIT (default_interval);
DEBUG ("utils_cmd_putval: handle_putval (fh = %p, buffer = %s);",
(void *) fh, buffer);
escape_string (buffer_values, sizeof (buffer_values));
ssnprintf (ret, ret_len,
- "PUTVAL %s interval=%i %s",
+ "PUTVAL %s interval=%.3f %s",
buffer_ident,
- (vl->interval > 0) ? vl->interval : interval_g,
+ (vl->interval > 0)
+ ? CDTIME_T_TO_DOUBLE (vl->interval)
+ : CDTIME_T_TO_DOUBLE (interval_g),
buffer_values);
return (0);