# HG changeset patch # User Nathan Phillip Brink # Date 2010-02-19 21:35:14 # Node ID 3479dcafbf1229c53b859561148672eb7c1da9f3 # Parent 8514c3a9b38952598e1917202fe344c79deb53a5 Better handle error situations, properly set MYSQL_OPT_RECONNECT diff --git a/src/server/mysql.c b/src/server/mysql.c --- a/src/server/mysql.c +++ b/src/server/mysql.c @@ -93,6 +93,8 @@ int mysqlConnect(distrend_mysql_conn_t * char *password = "HwLxuBqTvJ6J7FWj"; char *database = "distren"; + my_bool mybool; + mysqlconn = mysql_init(NULL); if(!mysql_real_connect(mysqlconn, server, user, password, database, 0, NULL, CLIENT_MULTI_STATEMENTS)) @@ -101,7 +103,11 @@ int mysqlConnect(distrend_mysql_conn_t * return 1; } - mysql_options(mysqlconn, MYSQL_OPT_RECONNECT,"true"); // After mysql_real_connect due to bug fixed in MySQL 5.1.6 and later + /** + Called after mysql_real_connect() due to bug fixed in MySQL 5.1.6 and later + */ + mybool = 1; + mysql_options(mysqlconn, MYSQL_OPT_RECONNECT, (char *)&mybool); *conn = malloc(sizeof(struct distrend_mysql_conn)); @@ -154,12 +160,16 @@ distrend_mysql_result_t mysqlQuery(distr */ if(mysql_ping(conn->mysqlconn)) - fprintf(stderr, "MySQL connection broken, and reconnect is disabled!\n"); - + { + fprintf(stderr, "MySQL connection broken, and reconnect is disabled!\n"); + } fprintf(stderr,"Querying... "); if (mysql_query(conn->mysqlconn, query)) - fprintf(stderr, "%s\n", mysql_error(conn->mysqlconn)); + { + fprintf(stderr, "calling mysql_query() resulted in: %s\n", mysql_error(conn->mysqlconn)); + return NULL; + } fprintf(stderr,"Queried!\n"); fprintf(stderr,"Getting results... "); @@ -223,7 +233,7 @@ int mysqlResultFree(distrend_mysql_resul counter ++) ; if(counter) - fprintf(stderr, "Calling function did not flush all of the rows it should've\n"); + fprintf(stderr, "Calling function did not flush %d rows\n", (int)counter); mysql_free_result(result->mysqlresult); free(result);