void storestat (struct userTraffInfo traffik,int accuracy_stat) { debug("storestat"); debug("accuracy_stat = %d",accuracy_stat); time_t now; time(&now); long int inow = (long int)now; long int minUpdateTime = inow - accuracy_stat; char query[150]; sprintf(query,"UPDATE stat SET bytes=bytes+%ldu WHERE src_addr='%s' AND src_port='%d' AND dst_addr='%s' AND dst_port='%d' AND storetime>=FROM_UNIXTIME(%ld);",traffik.traff.bytes,traffik.traff.src_addr,traffik.traff.src_port,traffik.traff.dst_addr,traffik.traff.dst_port,minUpdateTime); mysql_real_query(&mysql,query,(unsigned int) strlen(query)); if (mysql_affected_rows(&mysql)<=0) { sprintf(query,"INSERT INTO stat VALUES (NULL,FROM_UNIXTIME(%ld),'%s','%s','%d','%d','%ldu','%s');",inow,traffik.traff.src_addr,traffik.traff.dst_addr,traffik.traff.src_port,traffik.traff.dst_port,traffik.traff.bytes,traffik.traff.proto); mysql_real_query(&mysql,query,(unsigned int) strlen(query)); } debug("KONEC"); }