+
+struct mysql_conn_struct *get_mysql_conn_struct() {
+ SYNCHRONIZE(synchronized);
+ struct mysql_conn_struct *mysql_conn;
+ unsigned int tid;
+ #ifdef HAVE_THREADS
+ tid = (unsigned int) pthread_self_tid();
+ #else
+ tid = 1;
+ #endif
+ for(mysql_conn = mysql_conns; mysql_conn; mysql_conn = mysql_conn->next) {
+ if(mysql_conn->tid == tid) {
+ DESYNCHRONIZE(synchronized);
+ return mysql_conn;
+ }
+ }
+ mysql_conn = malloc(sizeof(*mysql_conn));
+ mysql_conn->mysql_conn = mysql_init(NULL);
+ mysql_conn->tid = tid;
+ mysql_conn->used_results = NULL;
+ mysql_conn->escaped_strings = NULL;
+ mysql_conn->next = mysql_conns;
+ mysql_conns = mysql_conn;
+ if (!mysql_real_connect(mysql_conn->mysql_conn, mysql_host, mysql_user, mysql_pass, mysql_base, mysql_serverport, NULL, 0)) {
+ //error
+ show_mysql_error();
+ }
+ DESYNCHRONIZE(synchronized);
+ return mysql_conn;
+}
+
+MYSQL *get_mysql_conn() {
+ struct mysql_conn_struct *mysql_conn = get_mysql_conn_struct();
+ return mysql_conn->mysql_conn;
+}