X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Futils_cmd_putval.c;h=4cbc2f1d96d5a2237946fa69f9c4fabad709e78c;hb=31ee0e5282b59f89ac5c9bcaebb993450e45dba1;hp=ec2b5f876795b53f2faec5c5ddc6104d7c0679a3;hpb=fa9fd186f4e09c24a02d9541c2409d21bf282087;p=collectd.git diff --git a/src/utils_cmd_putval.c b/src/utils_cmd_putval.c index ec2b5f87..4cbc2f1d 100644 --- a/src/utils_cmd_putval.c +++ b/src/utils_cmd_putval.c @@ -56,16 +56,16 @@ static int set_option (value_list_t *vl, const char *key, const char *value) 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); @@ -227,3 +227,31 @@ int handle_putval (FILE *fh, char *buffer) return (0); } /* int handle_putval */ +int create_putval (char *ret, size_t ret_len, /* {{{ */ + const data_set_t *ds, const value_list_t *vl) +{ + char buffer_ident[6 * DATA_MAX_NAME_LEN]; + char buffer_values[1024]; + int status; + + status = FORMAT_VL (buffer_ident, sizeof (buffer_ident), vl); + if (status != 0) + return (status); + escape_string (buffer_ident, sizeof (buffer_ident)); + + status = format_values (buffer_values, sizeof (buffer_values), + ds, vl, /* store rates = */ 0); + if (status != 0) + return (status); + escape_string (buffer_values, sizeof (buffer_values)); + + ssnprintf (ret, ret_len, + "PUTVAL %s interval=%.3f %s", + buffer_ident, + (vl->interval > 0) + ? CDTIME_T_TO_DOUBLE (vl->interval) + : CDTIME_T_TO_DOUBLE (plugin_get_interval ()), + buffer_values); + + return (0); +} /* }}} int create_putval */