# HG changeset patch # User Michiel Broek # Date 1589286285 -7200 # Node ID c865e3cdee049fd8c98cb4e3623c1c1569ff0b47 # Parent 9924b1218d3954bb243c6d16476392f917fe30a8 Prevent repeated fermenter offline broadcasts diff -r 9924b1218d39 -r c865e3cdee04 bmsd/fermenters.c --- a/bmsd/fermenters.c Tue May 12 13:16:25 2020 +0200 +++ b/bmsd/fermenters.c Tue May 12 14:24:45 2020 +0200 @@ -758,34 +758,36 @@ if (alias) { for (tmpp = fermenters; tmpp; tmpp = tmpp->next) { if ((strcmp(tmpp->node, edge_node) == 0) && (strcmp(tmpp->alias, alias) == 0)) { - if (tmpp->online) + if (tmpp->online) { syslog(LOG_NOTICE, "Offline fermenter %s/%s", tmpp->node, tmpp->alias); - tmpp->online = false; - msg = xstrcpy((char *)"{\"device\":\"fermenter\",\"node\":\""); - msg = xstrcat(msg, edge_node); - msg = xstrcat(msg, (char *)"\",\"unit\":\""); - msg = xstrcat(msg, alias); - msg = xstrcat(msg, (char *)"\",\"online\":0}"); - ws_broadcast(msg); - free(msg); - msg = NULL; + tmpp->online = false; + msg = xstrcpy((char *)"{\"device\":\"fermenter\",\"node\":\""); + msg = xstrcat(msg, edge_node); + msg = xstrcat(msg, (char *)"\",\"unit\":\""); + msg = xstrcat(msg, alias); + msg = xstrcat(msg, (char *)"\",\"online\":0}"); + ws_broadcast(msg); + free(msg); + msg = NULL; + } break; } } } else { for (tmpp = fermenters; tmpp; tmpp = tmpp->next) { if (strcmp(tmpp->node, edge_node) == 0) { - if (tmpp->online) + if (tmpp->online) { syslog(LOG_NOTICE, "Offline fermenter %s/%s", tmpp->node, tmpp->alias); - tmpp->online = false; - msg = xstrcpy((char *)"{\"device\":\"fermenter\",\"node\":\""); - msg = xstrcat(msg, edge_node); - msg = xstrcat(msg, (char *)"\",\"unit\":\""); - msg = xstrcat(msg, tmpp->alias); - msg = xstrcat(msg, (char *)"\",\"online\":0}"); - ws_broadcast(msg); - free(msg); - msg = NULL; + tmpp->online = false; + msg = xstrcpy((char *)"{\"device\":\"fermenter\",\"node\":\""); + msg = xstrcat(msg, edge_node); + msg = xstrcat(msg, (char *)"\",\"unit\":\""); + msg = xstrcat(msg, tmpp->alias); + msg = xstrcat(msg, (char *)"\",\"online\":0}"); + ws_broadcast(msg); + free(msg); + msg = NULL; + } } } }