From c992372f80a3668ca3dd1b62ebe7b8284111bd0a Mon Sep 17 00:00:00 2001 From: brain Date: Tue, 3 Jan 2006 18:26:25 +0000 Subject: 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 --- src/userprocess.cpp | 2 ++ src/users.cpp | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) (limited to 'src') 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 -- cgit v1.2.3