void db_removefromchans(int nickid) { MYSQL_RES *resptr; char **res; db_query("SELECT " TBL_ISON ".chanid, channel FROM " TBL_ISON ", " TBL_CHAN " WHERE nickid=\'%d\' AND " TBL_CHAN ".chanid = " TBL_ISON ".chanid", nickid); resptr = mysql_store_result(myptr); db_query("DELETE FROM " TBL_ISON " WHERE nickid=\'%d\'", nickid); while ((res = mysql_fetch_row(resptr))) { char *chan = db_escape(res[1]); db_checkemptychan(atoi(res[0]), chan); free(chan); } mysql_free_result(resptr); }
void db_removefromchans(int nickid) { #ifdef USE_MYSQL MYSQL_RES *mysql_res; char **res; int chanid; #endif SET_SEGV_LOCATION(); if (!denora->do_sql) { return; } rdb_query (QUERY_HIGH, "SELECT %s.chanid, channel FROM %s, %s WHERE nickid=%d AND %s.chanid = %s.chanid", IsOnTable, IsOnTable, ChanTable, nickid, ChanTable, IsOnTable); #ifdef USE_MYSQL mysql_res = mysql_store_result(mysql); #endif rdb_query(QUERY_LOW, "DELETE FROM %s WHERE nickid=%d", IsOnTable, nickid); SET_SEGV_LOCATION(); #ifdef USE_MYSQL if (mysql_res) { while ((res = mysql_fetch_row(mysql_res))) { char *chan = rdb_escape(res[1]); chanid = db_getchannel(chan); rdb_query(QUERY_LOW, "UPDATE %s SET currentusers=currentusers-1 WHERE chanid=%d", ChanTable, chanid); if (!ChanHasMode(chan, ircd->persist_char)) db_checkemptychan(atoi(res[0])); free(chan); } SET_SEGV_LOCATION(); mysql_free_result(mysql_res); } #endif }