diff -r a4fcdf24b5e7 -r ca1fbb3bd3db bmsd/nodes.c --- a/bmsd/nodes.c Thu May 21 14:27:56 2020 +0200 +++ b/bmsd/nodes.c Thu May 21 14:32:23 2020 +0200 @@ -294,14 +294,12 @@ sys_ispindel_list *tmpi; time_t now = time(NULL); char *msg = NULL; - bool report = false; for (tmpn = nodes; tmpn; tmpn = tmpn->next) { // if (debug) // printf("%-20s online %s %ld %d\n", tmpn->node, tmpn->online ? "yes":"no ", tmpn->lastseen, tmpn->interval); if (tmpn->online && ((now - tmpn->lastseen) > (tmpn->interval * 2 + 5))) { // 2 times interval + 5 seconds syslog(LOG_NOTICE, "Timeout node `%s/%s' after %ld seconds", tmpn->group_id, tmpn->node, (now - tmpn->lastseen)); - report = true; tmpn->online = false; node_mysql_death(tmpn->node); msg = xstrcpy((char *)"{\"node\":\""); @@ -372,93 +370,7 @@ } } } - - if (report) - status_change(); } -void status_change(void) -{ - sys_node_list *tmpn; - sys_fermenter_list *tmpf; - sys_co2meter_list *tmpc; - sys_ispindel_list *tmpi; - char *msg = NULL; - bool comma = false; - - msg = xstrcpy((char *)"{\"status\":{\"nodes\":["); - - for (tmpn = nodes; tmpn; tmpn = tmpn->next) { - if (comma) - msg = xstrcat(msg, (char *)","); - comma = true; - msg = xstrcat(msg, (char *)"{\"uuid\":\""); - msg = xstrcat(msg, tmpn->uuid); - msg = xstrcat(msg, (char *)"\",\"node\":\""); - msg = xstrcat(msg, tmpn->node); - msg = xstrcat(msg, (char *)"\",\"online\":"); - msg = xstrcat(msg, (tmpn->online) ? (char *)"1":(char *)"0"); - msg = xstrcat(msg, (char *)"}"); - } - - msg = xstrcat(msg, (char *)"],\"fermenters\":["); - comma = false; - for (tmpf = fermenters; tmpf; tmpf = tmpf->next) { - if (comma) - msg = xstrcat(msg, (char *)","); - comma = true; - msg = xstrcat(msg, (char *)"{\"uuid\":\""); - msg = xstrcat(msg, tmpf->uuid); - msg = xstrcat(msg, (char *)"\",\"node\":\""); - msg = xstrcat(msg, tmpf->node); - msg = xstrcat(msg, (char *)"\",\"unit\":\""); - msg = xstrcat(msg, tmpf->alias); - msg = xstrcat(msg, (char *)"\",\"online\":"); - msg = xstrcat(msg, (tmpf->online) ? (char *)"1":(char *)"0"); - msg = xstrcat(msg, (char *)"}"); - } - - msg = xstrcat(msg, (char *)"],\"co2meters\":["); - comma = false; - for (tmpc = co2meters; tmpc; tmpc = tmpc->next) { - if (comma) - msg = xstrcat(msg, (char *)","); - comma = true; - msg = xstrcat(msg, (char *)"{\"uuid\":\""); - msg = xstrcat(msg, tmpc->uuid); - msg = xstrcat(msg, (char *)"\",\"node\":\""); - msg = xstrcat(msg, tmpc->node); - msg = xstrcat(msg, (char *)"\",\"unit\":\""); - msg = xstrcat(msg, tmpc->alias); - msg = xstrcat(msg, (char *)"\",\"online\":"); - msg = xstrcat(msg, (tmpc->online) ? (char *)"1":(char *)"0"); - msg = xstrcat(msg, (char *)"}"); - } - - msg = xstrcat(msg, (char *)"],\"ispindels\":["); - comma = false; - for (tmpi = ispindels; tmpi; tmpi = tmpi->next) { - if (comma) - msg = xstrcat(msg, (char *)","); - comma = true; - msg = xstrcat(msg, (char *)"{\"uuid\":\""); - msg = xstrcat(msg, tmpi->uuid); - msg = xstrcat(msg, (char *)"\",\"node\":\""); - msg = xstrcat(msg, tmpi->node); - msg = xstrcat(msg, (char *)"\",\"unit\":\""); - msg = xstrcat(msg, tmpi->alias); - msg = xstrcat(msg, (char *)"\",\"online\":"); - msg = xstrcat(msg, (tmpi->online) ? (char *)"1":(char *)"0"); - msg = xstrcat(msg, (char *)"}"); - } - - msg = xstrcat(msg, (char *)"]}}"); -// syslog(LOG_NOTICE, msg); - ws_broadcast(msg); - free(msg); - msg = NULL; -} - -