summaryrefslogtreecommitdiffstats
path: root/src/collectors/freeipmi.plugin/freeipmi_plugin.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/collectors/freeipmi.plugin/freeipmi_plugin.c')
-rw-r--r--src/collectors/freeipmi.plugin/freeipmi_plugin.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/collectors/freeipmi.plugin/freeipmi_plugin.c b/src/collectors/freeipmi.plugin/freeipmi_plugin.c
index 38fb1d19b..a0eb0783d 100644
--- a/src/collectors/freeipmi.plugin/freeipmi_plugin.c
+++ b/src/collectors/freeipmi.plugin/freeipmi_plugin.c
@@ -1240,9 +1240,9 @@ void *netdata_ipmi_collection_thread(void *ptr) {
usec_t step = t->freq_s * USEC_PER_SEC;
heartbeat_t hb;
- heartbeat_init(&hb);
+ heartbeat_init(&hb, step);
while(++iteration) {
- heartbeat_next(&hb, step);
+ heartbeat_next(&hb);
if(t->debug)
fprintf(stderr, "%s: calling netdata_ipmi_collect_data() for %s\n",
@@ -1488,7 +1488,7 @@ static void freeimi_function_sensors(const char *transaction, char *function __m
char function_copy[strlen(function) + 1];
memcpy(function_copy, function, sizeof(function_copy));
char *words[1024];
- size_t num_words = quoted_strings_splitter_pluginsd(function_copy, words, 1024);
+ size_t num_words = quoted_strings_splitter_whitespace(function_copy, words, 1024);
for(size_t i = 1; i < num_words ;i++) {
char *param = get_word(words, num_words, i);
if(strcmp(param, "info") == 0) {
@@ -1629,7 +1629,10 @@ close_and_send:
buffer_json_member_add_time_t(wb, "expires", now_s + update_every);
buffer_json_finalize(wb);
- pluginsd_function_result_to_stdout(transaction, HTTP_RESP_OK, "application/json", now_s + update_every, wb);
+ wb->response_code = HTTP_RESP_OK;
+ wb->content_type = CT_APPLICATION_JSON;
+ wb->expires = now_s + update_every;
+ pluginsd_function_result_to_stdout(transaction, wb);
buffer_free(wb);
}
@@ -1637,14 +1640,13 @@ close_and_send:
// ----------------------------------------------------------------------------
// main, command line arguments parsing
-static NORETURN void plugin_exit(int code) {
+static void plugin_exit(int code) {
fflush(stdout);
function_plugin_should_exit = true;
exit(code);
}
int main (int argc, char **argv) {
- clocks_init();
nd_log_initialize_for_external_plugins("freeipmi.plugin");
netdata_threads_init_for_external_plugins(0); // set the default threads stack size here
@@ -1997,15 +1999,13 @@ int main (int argc, char **argv) {
time_t started_t = now_monotonic_sec();
size_t iteration = 0;
- usec_t step = 100 * USEC_PER_MS;
bool global_chart_created = false;
bool tty = isatty(fileno(stdout)) == 1;
heartbeat_t hb;
- heartbeat_init(&hb);
-
+ heartbeat_init(&hb, update_every * USEC_PER_SEC);
for(iteration = 0; 1 ; iteration++) {
- usec_t dt = heartbeat_next(&hb, step);
+ usec_t dt = heartbeat_next(&hb);
if (!tty) {
netdata_mutex_lock(&stdout_mutex);
@@ -2024,7 +2024,6 @@ int main (int argc, char **argv) {
switch(state.sensors.status) {
case ICS_RUNNING:
- step = update_every * USEC_PER_SEC;
if(state.sensors.last_iteration_ut < now_monotonic_usec() - IPMI_RESTART_IF_SENSORS_DONT_ITERATE_EVERY_SECONDS * USEC_PER_SEC) {
collector_error("%s(): sensors have not be collected for %zu seconds. Exiting to restart.",
__FUNCTION__, (size_t)((now_monotonic_usec() - state.sensors.last_iteration_ut) / USEC_PER_SEC));
@@ -2041,11 +2040,13 @@ int main (int argc, char **argv) {
collector_error("%s(): sensors failed to initialize. Calling DISABLE.", __FUNCTION__);
fprintf(stdout, "DISABLE\n");
plugin_exit(0);
+ break;
case ICS_FAILED:
collector_error("%s(): sensors fails repeatedly to collect metrics. Exiting to restart.", __FUNCTION__);
fprintf(stdout, "EXIT\n");
plugin_exit(0);
+ break;
}
if(netdata_do_sel) {