diff --git a/src/core/store.c b/src/core/store.c
index d6ad01fedd354da89efaa9bac27c6b44921cd180..25691dc36839d6b38f9ea2061fcbf0f23378a4ba 100644 (file)
--- a/src/core/store.c
+++ b/src/core/store.c
#include <stdlib.h>
#include <string.h>
+#include <math.h>
#include <pthread.h>
/*
*/
static sdb_host_t *
-lookup_host(const char *name, _Bool canonicalize)
+lookup_host(const char *name, bool canonicalize)
{
sdb_host_t *host;
char *cname;
snprintf(time_str, sizeof(time_str), "<error>");
time_str[sizeof(time_str) - 1] = '\0';
- sdb_strbuf_append(buf, "{\"timestamp\": \"%s\", "
- "\"value\": \"%f\"}", time_str, ts->data[i][j].value);
+ /* Some GNU libc versions may print '-nan' which we dont' want */
+ if (isnan(ts->data[i][j].value))
+ sdb_strbuf_append(buf, "{\"timestamp\": \"%s\", "
+ "\"value\": \"nan\"}", time_str);
+ else
+ sdb_strbuf_append(buf, "{\"timestamp\": \"%s\", "
+ "\"value\": \"%f\"}", time_str, ts->data[i][j].value);
if (j < ts->data_len - 1)
sdb_strbuf_append(buf, ",");
return status;
} /* sdb_store_host */
-_Bool
+bool
sdb_store_has_host(const char *name)
{
sdb_host_t *host;
tmp.data.array.length = obj->backends_num;
tmp.data.array.values = obj->backends;
return sdb_data_copy(res, &tmp);
- break;
}
default:
return -1;