summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-01-03 18:26:25 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-01-03 18:26:25 +0000
commitc992372f80a3668ca3dd1b62ebe7b8284111bd0a (patch)
tree30880be41fa2ffdc3591e89e0b5677677fd5f5c7
parent882208fc76300568838ee0491ddf68badb735d67 (diff)
Fixed to not crash on /PARK (still more to test)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2729 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--src/userprocess.cpp2
-rw-r--r--src/users.cpp5
2 files changed, 5 insertions, 2 deletions
diff --git a/src/userprocess.cpp b/src/userprocess.cpp
index ba4cc48bb..c4541c29a 100644
--- a/src/userprocess.cpp
+++ b/src/userprocess.cpp
@@ -81,6 +81,8 @@ extern chan_hash chanlist;
void ProcessUser(userrec* cu)
{
int result = EAGAIN;
+ if (cu->fd == FD_MAGIC_NUMBER)
+ return;
log(DEBUG,"Processing user with fd %d",cu->fd);
if (Config->GetIOHook(cu->port))
{
diff --git a/src/users.cpp b/src/users.cpp
index e913086c2..5429e612e 100644
--- a/src/users.cpp
+++ b/src/users.cpp
@@ -284,7 +284,7 @@ void userrec::AddWriteBuf(std::string data)
// send AS MUCH OF THE USERS SENDQ as we are able to (might not be all of it)
void userrec::FlushWriteBuf()
{
- if (sendq.length())
+ if ((sendq.length()) && (this->fd != FD_MAGIC_NUMBER))
{
char* tb = (char*)this->sendq.c_str();
int n_sent = write(this->fd,tb,this->sendq.length());
@@ -467,7 +467,8 @@ void AddWhoWas(userrec* u)
strlcpy(a->dhost,u->dhost,160);
strlcpy(a->host,u->host,160);
strlcpy(a->fullname,u->fullname,MAXGECOS);
- strlcpy(a->server,u->server,256);
+ if (u->server)
+ strlcpy(a->server,u->server,256);
a->signon = u->signon;
/* MAX_WHOWAS: max number of /WHOWAS items