bmsd/mysql.c

changeset 579
1253a237b620
parent 578
e75ce5bbda73
child 580
9cd6873bda75
equal deleted inserted replaced
578:e75ce5bbda73 579:1253a237b620
336 if (debug) 336 if (debug)
337 fprintf(stdout, "MySQL: disconnected\n"); 337 fprintf(stdout, "MySQL: disconnected\n");
338 338
339 for (tmpi = ispindels; tmpi; tmpi = oldtmpi) { 339 for (tmpi = ispindels; tmpi; tmpi = oldtmpi) {
340 oldtmpi = tmpi->next; 340 oldtmpi = tmpi->next;
341 if (tmpi->uuid)
342 free(tmpi->uuid);
343 if (tmpi->alias)
344 free(tmpi->alias);
341 if (tmpi->node) 345 if (tmpi->node)
342 free(tmpi->node); 346 free(tmpi->node);
343 if (tmpi->beercode) 347 if (tmpi->beercode)
344 free(tmpi->beercode); 348 free(tmpi->beercode);
345 if (tmpi->beername) 349 if (tmpi->beername)
346 free(tmpi->beername); 350 free(tmpi->beername);
347 if (tmpi->beeruuid) 351 if (tmpi->beeruuid)
348 free(tmpi->beeruuid); 352 free(tmpi->beeruuid);
353 if (tmpi->mode)
354 free(tmpi->mode);
349 free(tmpi); 355 free(tmpi);
350 } 356 }
351 357
352 for (tmpp = co2meters; tmpp; tmpp = oldtmpp) { 358 for (tmpp = co2meters; tmpp; tmpp = oldtmpp) {
353 oldtmpp = tmpp->next; 359 oldtmpp = tmpp->next;
757 763
758 snprintf(query, 511, "UPDATE mon_ispindels SET online='0' WHERE uuid='%s'", uuid); 764 snprintf(query, 511, "UPDATE mon_ispindels SET online='0' WHERE uuid='%s'", uuid);
759 bms_mysql_query(query); 765 bms_mysql_query(query);
760 free(query); 766 free(query);
761 } 767 }
768
769
770
771 void ispindel_mysql_check(void)
772 {
773 sys_ispindel_list *tmpp;
774
775 if (ispindels == NULL)
776 return;
777
778 if (mysql_query(con, "SELECT uuid,alias,beercode,beername,beeruuid,mode FROM mon_ispindels;")) {
779 syslog(LOG_NOTICE, "MySQL: SELECT uuid,alias,beercode,beername,beeruuid,mode FROM mon_ispindels error %u (%s))", mysql_errno(con), mysql_error(con));
780 } else {
781 res_set = mysql_store_result(con);
782 if (res_set == NULL) {
783 syslog(LOG_NOTICE, "MySQL: mysq_store_result error %u (%s))", mysql_errno(con), mysql_error(con));
784 } else {
785 while ((row = mysql_fetch_row(res_set)) != NULL) {
786 for (tmpp = ispindels; tmpp; tmpp = tmpp->next) {
787 if (strcmp(tmpp->uuid, row[0]) == 0) {
788 if (strcmp(tmpp->beercode, row[2]) || strcmp(tmpp->beername, row[3]) || strcmp(tmpp->beeruuid, row[4])) {
789 syslog(LOG_NOTICE, "ispindel `%s` change beer to `%s %s`", row[1], row[2], row[3]);
790 if (tmpp->beercode)
791 free(tmpp->beercode);
792 tmpp->beercode = xstrcpy(row[2]);
793 if (tmpp->beername)
794 free(tmpp->beername);
795 tmpp->beername = xstrcpy(row[3]);
796 if (tmpp->beeruuid)
797 free(tmpp->beeruuid);
798 tmpp->beeruuid = xstrcpy(row[4]);
799 }
800 if (strcmp(tmpp->mode, row[5])) {
801 syslog(LOG_NOTICE, "ispindel `%s` change mode `%s`", row[1], row[5]);
802 if (tmpp->mode)
803 free(tmpp->mode);
804 tmpp->mode = xstrcpy(row[5]);
805 }
806 }
807 }
808 }
809 mysql_free_result(res_set);
810 }
811 }
812 }
813

mercurial