]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Fixed weird bug where on mass join/part flood, the channel would be
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Wed, 11 May 2005 01:24:59 +0000 (01:24 +0000)
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Wed, 11 May 2005 01:24:59 +0000 (01:24 +0000)
purged before it was actually empty due to its counters being screwed up

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@1360 e03df62e-2008-0410-955e-edbf42e46eb7

src/channels.cpp
src/inspircd.cpp
src/inspircd_io.cpp

index 6d6c15f13e85977de72e4bae2778aa701047603a..4e46c3b30afa1251c061e99545d4a4f093d09fc0 100644 (file)
@@ -201,20 +201,15 @@ std::string chanrec::GetModeParameter(char mode)
 
 void chanrec::IncUserCounter()
 {
-       this->users++;
-       log(DEBUG,"Incremented channel user count for %s to %lu",name,(unsigned long)users);
 }
 
 void chanrec::DecUserCounter()
 {
-       if (this->users > 0)
-               this->users--;
-       log(DEBUG,"Decremented channel user count for %s to %lu",name,(unsigned long)users);
 }
 
 long chanrec::GetUserCounter()
 {
-       return (this->users);
+       return (this->internal_userlist.size());
 }
 
 void chanrec::AddUser(char* castuser)
index 21e3bffd97759d51492b86151b46a49208cc9af3..8da1f7bf5734f491c2c5feaf54da2b89b50e2cee 100644 (file)
@@ -1384,7 +1384,6 @@ void purge_empty_chans(userrec* u)
        {
                if (u->chans[f].channel)
                {
-                       u->chans[f].channel->DecUserCounter();
                        u->chans[f].channel->DelUser((char*)u);
                }
        }
@@ -1897,7 +1896,6 @@ chanrec* del_channel(userrec *user, const char* cname, const char* reason, bool
                }
        }
 
-       Ptr->DecUserCounter();
        Ptr->DelUser((char*)user);
        
        /* if there are no users left on the channel */
@@ -1982,7 +1980,6 @@ void kick_channel(userrec *src,userrec *user, chanrec *Ptr, char* reason)
                }
        }
 
-       Ptr->DecUserCounter();
        Ptr->DelUser((char*)user);
 
        /* if there are no users left on the channel */
index 3ef3c11e3ce184202f15fcc2de36f086c2e2ae94..f1b122fa13b9dca84efc3d4f0eea726cba9bda99 100644 (file)
@@ -87,17 +87,13 @@ void WritePID(std::string filename)
        }
 }
 
-void DeadPipe(int status)
-{
-  signal (SIGPIPE, DeadPipe);
-}
 
 int DaemonSeed (void)
 {
        int childpid;
        signal (SIGALRM, SIG_IGN);
        signal (SIGHUP, Rehash);
-       signal (SIGPIPE, DeadPipe);
+       signal (SIGPIPE, SIG_IGN);
        signal (SIGTERM, Exit);
        signal (SIGSEGV, Error);
        if ((childpid = fork ()) < 0)