added some debug code & fixed compiler warning
[NeonServV5.git] / src / ChanUser.c
index 0d370c1dcd25ef9e55b127fcd58813c32d32471d..63777258e1b5e133582f8223d08e4ed7145b0f3e 100644 (file)
@@ -1,4 +1,4 @@
-/* ChanUser.c - NeonServ v5.4
+/* ChanUser.c - NeonServ v5.6
  * Copyright (C) 2011-2012  Philipp Kreil (pk910)
  * 
  * This program is free software: you can redistribute it and/or modify
@@ -21,6 +21,9 @@
 #include "UserNode.h"
 
 struct ChanUser* addChanUser(struct ChanNode *chan, struct UserNode *user) {
+    if(isUserOnChan(user, chan)) {
+        putlog(LOGLEVEL_ERROR, "CACHE FAIL");
+    }
     struct ChanUser *chanuser = malloc(sizeof(*chanuser));
     if (!chanuser)
     {
@@ -123,18 +126,16 @@ void delChanUser(struct ChanUser *chanuser, int do_freeChanUser) {
     SYNCHRONIZE(cache_sync);
     struct ChanUser *cchanuser, *last;
     //remove it from the user's channel-list
-    if(!(chanuser->flags & CHANUSERFLAG_INVISIBLE)) {
-        last = NULL;
-        for(cchanuser = chanuser->user->channel; cchanuser; cchanuser = cchanuser->next_chan) {
-            if(cchanuser == chanuser) {
-                if(last) 
-                    last->next_chan = chanuser->next_chan;
-                else
-                    chanuser->user->channel = chanuser->next_chan;
-                break;
-            } else
-                last = cchanuser;
-        }
+    last = NULL;
+    for(cchanuser = chanuser->user->channel; cchanuser; cchanuser = cchanuser->next_chan) {
+        if(cchanuser == chanuser) {
+            if(last) 
+                last->next_chan = chanuser->next_chan;
+            else
+                chanuser->user->channel = chanuser->next_chan;
+            break;
+        } else
+            last = cchanuser;
     }
 
     //remove it from the channel's user-list