diff --git a/src/server/mysql.c b/src/server/mysql.c --- a/src/server/mysql.c +++ b/src/server/mysql.c @@ -177,12 +177,24 @@ distrend_mysql_result_t mysqlQuery(distr int mysqlResultFree(distrend_mysql_result_t result) { + size_t counter; + if(!result) return 0; if(result->pointlesscheck != FORTY_TWO) fprintf(stderr, "%s:%d: I didn't get the type of handle I wanted\n", __FILE__, __LINE__); + /** + Must flush the resultset buffer. + */ + for(counter = 0; + mysql_fetch_row(result->mysqlresult); + counter ++) + ; + if(counter) + fprintf(stderr, "Calling function did not flush all of the rows it should've\n"); + mysql_free_result(result->mysqlresult); free(result); @@ -232,7 +244,7 @@ int change_job_priority(distrend_mysql_c return 0; } -int find_jobframe(distrend_mysql_conn_t conn, int32_t slavekey, int32_t jobkey, int32_t framenum) +int find_jobframe(distrend_mysql_conn_t conn, int32_t slavekey, int32_t *jobkey, int32_t *framenum) { distrend_mysql_result_t result; char *query; @@ -248,10 +260,13 @@ int find_jobframe(distrend_mysql_conn_t row = mysql_fetch_row(result->mysqlresult); if(!row) - return 1; + { + mysqlResultFree(result); + return 1; + } - distrend_mysql_getint(row, 1, &jobkey); - distrend_mysql_getint(row, 2, &framenum); + distrend_mysql_getint(row, 0, jobkey); + distrend_mysql_getint(row, 1, framenum);