X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=cmd_neonserv_upall.c;h=bea93250cc9c24908318b2f4d57bfe7252b78a28;hb=795115bf680185ae01043bd1222b78bfed8c1d87;hp=4cb20606d94f6057561691778a426a4f59a9f7c1;hpb=231c3fe710c3975becfde36b7ecfd4de55ce0cd0;p=NeonServV5.git diff --git a/cmd_neonserv_upall.c b/cmd_neonserv_upall.c index 4cb2060..bea9325 100644 --- a/cmd_neonserv_upall.c +++ b/cmd_neonserv_upall.c @@ -1,10 +1,11 @@ +#include "cmd_neonserv.h" + /* * no arguments */ -static CMD_BIND(neonserv_cmd_upall) { - check_mysql(); +CMD_BIND(neonserv_cmd_upall) { MYSQL_RES *res, *default_res; MYSQL_ROW row, default_row; struct ChanUser *chanuser; @@ -14,8 +15,9 @@ static CMD_BIND(neonserv_cmd_upall) { if ((row = mysql_fetch_row(res)) == NULL) return; userid = atoi(row[0]); - printf_mysql_query("SELECT `chanuser_access`, `channel_getop`, `channel_getvoice`, `channel_name`, `channel_id` FROM `chanusers` LEFT JOIN `channels` ON `chanuser_cid` = `channel_id` WHERE `chanuser_cid` = '%s'", user->auth); - while ((row = mysql_fetch_row(res)) == NULL) { + printf_mysql_query("SELECT `chanuser_access`, `channel_getop`, `channel_getvoice`, `channel_name`, `channel_id` FROM `chanusers` LEFT JOIN `channels` ON `chanuser_cid` = `channel_id` WHERE `chanuser_uid` = '%d'", userid); + res = mysql_use(); + while ((row = mysql_fetch_row(res)) != NULL) { chan = getChanByName(row[3]); if(!chan) continue; printf_mysql_query("SELECT `botid` FROM `bot_channels` LEFT JOIN `bots` ON `bot_channels`.`botid` = `bots`.`id` WHERE `chanid` = '%s' AND `botclass` = '%d'", row[4], client->botid); @@ -32,12 +34,21 @@ static CMD_BIND(neonserv_cmd_upall) { chan_getvoice = atoi(row[2]); } caccess = atoi(row[0]); + int done = 0; if(caccess >= chan_getop) { - if(!(chanuser->flags & CHANUSERFLAG_OPPED)) + if(!(chanuser->flags & CHANUSERFLAG_OPPED)) { putsock(client, "MODE %s +o %s", chan->name, user->nick); + done = 1; + } } else if(caccess >= chan_getvoice) { - if(!(chanuser->flags & CHANUSERFLAG_VOICED)) + if(!(chanuser->flags & CHANUSERFLAG_VOICED)) { putsock(client, "MODE %s +v %s", chan->name, user->nick); + done = 1; + } + } + if(done) { + event->chan = chan; + logEvent(event); } } }