bmsd/mysql.c

changeset 582
93848540442c
parent 580
9cd6873bda75
child 587
31caffee8c9c
equal deleted inserted replaced
581:fc276025d047 582:93848540442c
766 free(query); 766 free(query);
767 } 767 }
768 768
769 769
770 770
771 /*
772 * Check using a new MySQL connection because we are running from another thread.
773 */
771 void ispindel_mysql_check(void) 774 void ispindel_mysql_check(void)
772 { 775 {
773 sys_ispindel_list *tmpp; 776 sys_ispindel_list *tmpp;
777 MYSQL *con2 = NULL;
778 MYSQL_RES *res_set2;
779 MYSQL_ROW row2;
774 780
775 if (ispindels == NULL) 781 if (ispindels == NULL)
776 return; 782 return;
777 783
778 if (mysql_query(con, "SELECT uuid,alias,beercode,beername,beeruuid,mode FROM mon_ispindels;")) { 784 con2 = mysql_init(NULL);
779 syslog(LOG_NOTICE, "MySQL: SELECT uuid,alias,beercode,beername,beeruuid,mode FROM mon_ispindels error %u (%s))", mysql_errno(con), mysql_error(con)); 785 if (con2 == NULL) {
786 syslog(LOG_NOTICE, "MySQL: mysql_init() failed");
787 return;
788 }
789
790 if (mysql_real_connect(con2, Config.mysql_host, Config.mysql_user, Config.mysql_pass, Config.mysql_database, Config.mysql_port, NULL, 0) == NULL) {
791 syslog(LOG_NOTICE, "MySQL: mysql_real_connect() %s", mysql_error(con2));
792 return;
793 }
794
795 if (mysql_query(con2, "SELECT uuid,alias,beercode,beername,beeruuid,mode FROM mon_ispindels;")) {
796 syslog(LOG_NOTICE, "MySQL: SELECT uuid,alias,beercode,beername,beeruuid,mode FROM mon_ispindels error %u (%s))", mysql_errno(con2), mysql_error(con2));
780 } else { 797 } else {
781 res_set = mysql_store_result(con); 798 res_set2 = mysql_store_result(con2);
782 if (res_set == NULL) { 799 if (res_set2 == NULL) {
783 syslog(LOG_NOTICE, "MySQL: mysq_store_result error %u (%s))", mysql_errno(con), mysql_error(con)); 800 syslog(LOG_NOTICE, "MySQL: mysq_store_result error %u (%s))", mysql_errno(con2), mysql_error(con2));
784 } else { 801 } else {
785 while ((row = mysql_fetch_row(res_set)) != NULL) { 802 while ((row2 = mysql_fetch_row(res_set2)) != NULL) {
786 for (tmpp = ispindels; tmpp; tmpp = tmpp->next) { 803 for (tmpp = ispindels; tmpp; tmpp = tmpp->next) {
787 if (strcmp(tmpp->uuid, row[0]) == 0) { 804 if (strcmp(tmpp->uuid, row2[0]) == 0) {
788 if (strcmp(tmpp->beercode, row[2]) || strcmp(tmpp->beername, row[3]) || strcmp(tmpp->beeruuid, row[4])) { 805 if (strcmp(tmpp->beercode, row2[2]) || strcmp(tmpp->beername, row2[3]) || strcmp(tmpp->beeruuid, row2[4])) {
789 syslog(LOG_NOTICE, "ispindel `%s` change beer to `%s %s`", row[1], row[2], row[3]); 806 syslog(LOG_NOTICE, "ispindel `%s` change beer to `%s %s`", row2[1], row2[2], row2[3]);
790 if (tmpp->beercode) 807 if (tmpp->beercode)
791 free(tmpp->beercode); 808 free(tmpp->beercode);
792 tmpp->beercode = xstrcpy(row[2]); 809 tmpp->beercode = xstrcpy(row2[2]);
793 if (tmpp->beername) 810 if (tmpp->beername)
794 free(tmpp->beername); 811 free(tmpp->beername);
795 tmpp->beername = xstrcpy(row[3]); 812 tmpp->beername = xstrcpy(row2[3]);
796 if (tmpp->beeruuid) 813 if (tmpp->beeruuid)
797 free(tmpp->beeruuid); 814 free(tmpp->beeruuid);
798 tmpp->beeruuid = xstrcpy(row[4]); 815 tmpp->beeruuid = xstrcpy(row2[4]);
799 } 816 }
800 if (strcmp(tmpp->mode, row[5])) { 817 if (strcmp(tmpp->mode, row2[5])) {
801 syslog(LOG_NOTICE, "ispindel `%s` change mode `%s`", row[1], row[5]); 818 syslog(LOG_NOTICE, "ispindel `%s` change mode `%s`", row2[1], row2[5]);
802 if (tmpp->mode) 819 if (tmpp->mode)
803 free(tmpp->mode); 820 free(tmpp->mode);
804 tmpp->mode = xstrcpy(row[5]); 821 tmpp->mode = xstrcpy(row2[5]);
805 } 822 }
806 } 823 }
807 } 824 }
808 } 825 }
809 mysql_free_result(res_set); 826 mysql_free_result(res_set2);
810 } 827 }
811 } 828 }
812 } 829
813 830 mysql_close(con2);
831 }
832

mercurial