summaryrefslogtreecommitdiffstats
path: root/src/plugins/influxdb-writer.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/influxdb-writer.c')
-rw-r--r--src/plugins/influxdb-writer.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/plugins/influxdb-writer.c b/src/plugins/influxdb-writer.c
index 2815b19..a7ce8fc 100644
--- a/src/plugins/influxdb-writer.c
+++ b/src/plugins/influxdb-writer.c
@@ -136,7 +136,7 @@ CURL *make_curl_write_post(afb_api_t apiHandle, const char *url, json_object *me
curl_wrap_prepare_post_unescaped(url, NULL, "\n", (const char * const*)post_data) : NULL;
free(serie);
for(i = 0; i < lpd; i++)
- free(post_data[i]);
+ if (post_data[i]) free(post_data[i]);
free(post_data);
return curl;
@@ -155,6 +155,7 @@ CTLP_CAPI(write_to_influxdb, source, argsJ, eventJ)
const char *port = NULL;
const char *host = NULL;
CURL *curl_request;
+ int rc = -1;
json_object *req_args = afb_req_json(request),
*portJ = NULL,
@@ -163,15 +164,17 @@ CTLP_CAPI(write_to_influxdb, source, argsJ, eventJ)
if(wrap_json_unpack(req_args, "{s?s,s?o,so!}",
"host", &host,
"port", &portJ,
- "metric", &metric) || ! metric)
+ "metric", &metric) || ! metric) {
afb_req_fail(request, "Failed", "Error processing arguments. Miss metric\
JSON object or malformed");
- else
+ rc = -1;
+ } else {
port = json_object_is_type(portJ, json_type_null) ?
NULL : json_object_to_json_string(portJ);
+ curl_request = influxdb_write(source->api, host, port, metric);
+ curl_wrap_do(curl_request, influxdb_write_curl_cb, request);
+ rc = 0;
+ }
- curl_request = influxdb_write(source->api, host, port, metric);
- curl_wrap_do(curl_request, influxdb_write_curl_cb, request);
-
- return 0;
+ return rc;
}