+#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;
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);
+ 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;
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);
}
}
}