# HG changeset patch # User Binki # Date 2010-02-10 01:15:31 # Node ID d5f4334ff4e61440309bd22ee02cbd243a2d73ce # Parent 258e2ea4b98b145b2bf11b731ef645f9fe7b6f4c add mysqlResultFree(), polish up mysql.c diff --git a/src/server/mysql.c b/src/server/mysql.c --- a/src/server/mysql.c +++ b/src/server/mysql.c @@ -35,6 +35,7 @@ */ #define SEVENTY_FIVE 75 +#define FORTY_TWO 42 struct distrend_mysql_con { @@ -44,7 +45,8 @@ struct distrend_mysql_con struct distrend_mysql_result { - MYSQL_RES *result; + MYSQL_RES *mysqlresult; + short pointlesscheck; }; /** @@ -70,6 +72,12 @@ int mysqlConnect(struct distrend_mysql_c } *conn = malloc(sizeof(struct distrend_mysql_con)); + if(!*conn) + { + mysql_close(mysqlconn); + mysql_server_end(); + return 2; + } (*conn)->mysqlconn = mysqlconn; (*conn)->pointlesscheck = SEVENTY_FIVE; @@ -90,6 +98,7 @@ int mysqlDisconnect(distrend_mysql_con_t conn->pointlesscheck ++; mysql_close(conn->mysqlconn); + mysql_server_end(); free(conn); return 0; @@ -118,6 +127,25 @@ distrend_mysql_result_t mysqlQuery(distr result = mysql_use_result(conn->mysqlconn); distrenresult = malloc(sizeof(struct distrend_mysql_result)); + if(!distrenresult) + { + mysql_free_result(result); + return NULL; + } + + distrenresult->mysqlresult = result; + distrenresult->pointlesscheck = FORTY_TWO; + return distrenresult; } +int mysqlResultFree(distrend_mysql_result_t result) +{ + if(result->pointlesscheck != FORTY_TWO) + fprintf(stderr, "%s:%d: I didn't get the type of handle I wanted\n", __FILE__, __LINE__); + + mysql_free_result(result->mysqlresult); + free(result); + + return 0; +} diff --git a/src/server/mysql.h b/src/server/mysql.h --- a/src/server/mysql.h +++ b/src/server/mysql.h @@ -26,7 +26,7 @@ struct distrend_mysql_con; struct distrend_mysql_result; typedef struct distrend_mysql_con *distrend_mysql_con_t; -typedef struct distrend_mysql_restul *distrend_mysql_result_t; +typedef struct distrend_mysql_result *distrend_mysql_result_t; /** initiates a MySQL connection @@ -38,7 +38,7 @@ int mysqlConnect(distrend_mysql_con_t *c /** cleans and disconnects MySQL connection @param conn connection to clean - @return 0 onh success + @return 0 on success */ int mysqlDisconnect(distrend_mysql_con_t conn); @@ -49,4 +49,10 @@ int mysqlDisconnect(distrend_mysql_con_t */ distrend_mysql_result_t mysqlQuery(struct distrend_mysql_con *conn, char *query); +/** + frees mysql query result. + @return 0 on success + */ +int mysqlResultFree(distrend_mysql_result_t result); + #endif /* MYSQL_H_ */