summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2005-05-11 01:24:59 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2005-05-11 01:24:59 +0000
commit275d48551c78d4c8253ef6b8c40dda09baec56d6 (patch)
tree087382f0ea1dc78fe339556cdfff9732a0d38dd5
parent9d449257ea2c404eaedd252602588b2812e42045 (diff)
Fixed weird bug where on mass join/part flood, the channel would be
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
-rw-r--r--src/channels.cpp7
-rw-r--r--src/inspircd.cpp3
-rw-r--r--src/inspircd_io.cpp6
3 files changed, 2 insertions, 14 deletions
diff --git a/src/channels.cpp b/src/channels.cpp
index 6d6c15f13..4e46c3b30 100644
--- a/src/channels.cpp
+++ b/src/channels.cpp
@@ -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)
diff --git a/src/inspircd.cpp b/src/inspircd.cpp
index 21e3bffd9..8da1f7bf5 100644
--- a/src/inspircd.cpp
+++ b/src/inspircd.cpp
@@ -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 */
diff --git a/src/inspircd_io.cpp b/src/inspircd_io.cpp
index 3ef3c11e3..f1b122fa1 100644
--- a/src/inspircd_io.cpp
+++ b/src/inspircd_io.cpp
@@ -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)