fixed cmd_nicklist: add users only one time to the channel userlist
authorpk910 <philipp@zoelle1.de>
Wed, 14 Dec 2011 20:57:10 +0000 (21:57 +0100)
committerpk910 <philipp@zoelle1.de>
Wed, 14 Dec 2011 20:57:10 +0000 (21:57 +0100)
src/cmd_neonserv_nicklist.c

index 1a337c0460b9daf59953581283f75fdd8bcf5f1e..d0a7e852697b000d9e0e2beaf9066f11bca08958 100644 (file)
@@ -23,7 +23,7 @@
 */
 static USERLIST_CALLBACK(neonserv_cmd_nicklist_userlist_lookup);
 static void neonserv_cmd_nicklist_async1(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, char *nickmask, int syncusers);
-static void neonserv_cmd_nicklist_synchronize_user(struct ChanNode *chan, struct UserNode *user, int access, int new);
+static void neonserv_cmd_nicklist_synchronize_user(struct ChanNode *chan, struct UserNode *user, int access);
 
 struct neonserv_cmd_nicklist_cache {
     struct ClientSocket *client, *textclient;
@@ -150,7 +150,7 @@ static void neonserv_cmd_nicklist_async1(struct ClientSocket *client, struct Cli
                                     sprintf(accessbuf, "\00307%d\003", uaccess);
                                     break;
                                 }
-                                neonserv_cmd_nicklist_synchronize_user(chan, chanuser->user, uaccess, 0);
+                                neonserv_cmd_nicklist_synchronize_user(chan, chanuser->user, uaccess);
                                 sprintf(accessbuf, "\00309%d\003", uaccess);
                                 synced_user = 1;
                             } else {
@@ -180,7 +180,7 @@ static void neonserv_cmd_nicklist_async1(struct ClientSocket *client, struct Cli
                         sprintf(accessbuf, "\003040\003");
                     }
                     if(uaccess && (chanuser->user->flags & USERFLAG_ISAUTHED)) {
-                        neonserv_cmd_nicklist_synchronize_user(chan, chanuser->user, uaccess, 1);
+                        neonserv_cmd_nicklist_synchronize_user(chan, chanuser->user, uaccess);
                         sprintf(accessbuf, "\00309%d\003", uaccess);
                         synced_user = 1;
                     } else if(uaccess) {
@@ -213,7 +213,7 @@ static void neonserv_cmd_nicklist_async1(struct ClientSocket *client, struct Cli
     }
 }
 
-static void neonserv_cmd_nicklist_synchronize_user(struct ChanNode *chan, struct UserNode *user, int caccess, int new) {
+static void neonserv_cmd_nicklist_synchronize_user(struct ChanNode *chan, struct UserNode *user, int caccess) {
     if(!(user->flags & USERFLAG_ISAUTHED)) return;
     MYSQL_RES *res;
     MYSQL_ROW row;
@@ -226,18 +226,13 @@ static void neonserv_cmd_nicklist_synchronize_user(struct ChanNode *chan, struct
         printf_mysql_query("INSERT INTO `users` (`user_user`) VALUES ('%s')", escape_string(user->auth));
         userid = (int) mysql_insert_id(mysql_conn);
     }
-    if(new) {
-        //just add
+    //check if already added
+    printf_mysql_query("SELECT `chanuser_access`, `chanuser_id`, `chanuser_seen` FROM `chanusers` WHERE `chanuser_cid` = '%d' AND `chanuser_uid` = '%d'", chan->channel_id, userid);
+    res = mysql_use();
+    if ((row = mysql_fetch_row(res)) != NULL) {
+        //clvl
+        if(atoi(row[0]) >= caccess) return;
+        printf_mysql_query("UPDATE `chanusers` SET `chanuser_access` = '%d' WHERE `chanuser_id` = '%s'", caccess, row[1]);
+    } else 
         printf_mysql_query("INSERT INTO `chanusers` (`chanuser_cid`, `chanuser_uid`, `chanuser_access`) VALUES ('%d', '%d', '%d')", chan->channel_id, userid, caccess);
-    } else {
-        //check if already added
-        printf_mysql_query("SELECT `chanuser_access`, `chanuser_id`, `chanuser_seen` FROM `chanusers` WHERE `chanuser_cid` = '%d' AND `chanuser_uid` = '%d'", chan->channel_id, userid);
-        res = mysql_use();
-        if ((row = mysql_fetch_row(res)) != NULL) {
-            //clvl
-            if(atoi(row[0]) >= caccess) return;
-            printf_mysql_query("UPDATE `chanusers` SET `chanuser_access` = '%d' WHERE `chanuser_id` = '%s'", caccess, row[1]);
-        } else 
-            printf_mysql_query("INSERT INTO `chanusers` (`chanuser_cid`, `chanuser_uid`, `chanuser_access`) VALUES ('%d', '%d', '%d')", chan->channel_id, userid, caccess);
-    }
 }