changed Makefile; build all commands as an own file
[NeonServV5.git] / cmd_neonserv_upall.c
index 18d4db31e651b21b8bd5dcab5be9e4011a0c4869..bea93250cc9c24908318b2f4d57bfe7252b78a28 100644 (file)
@@ -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,7 +15,8 @@ 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);
+    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;
@@ -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);
         }
     }
 }