summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2006-10-02 01:04:36 +0000
committerw00t <w00t@e03df62e-2008-0410-955e-edbf42e46eb7>2006-10-02 01:04:36 +0000
commit869f115d7f427847ab85b7738905aa3bcccd57d2 (patch)
treec98bdce951217002dbbda4a8216521199ae61e5b
parenta584474bd9b4f62b9da9f44e1f083f378970e43c (diff)
Brain, please review this commit ASAP. jamie, hopefully this fixes the crash
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@5384 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--src/users.cpp23
1 files changed, 14 insertions, 9 deletions
diff --git a/src/users.cpp b/src/users.cpp
index a67826fe5..72b2d79a5 100644
--- a/src/users.cpp
+++ b/src/users.cpp
@@ -956,6 +956,20 @@ void userrec::AddClient(InspIRCd* Instance, int socket, int port, bool iscached,
userrec::QuitUser(Instance, New, "Server is full");
return;
}
+
+ /*
+ * XXX really really fixme! QuitUser doesn't like having a null entry in the ref table it seems, moving this up so
+ * zlines dont crash ircd. we need a better solution, as this is obviously inefficient (and probably wrong) -- w00t
+ */
+ if (socket > -1)
+ {
+ if (!Instance->SE->AddFd(New))
+ {
+ userrec::QuitUser(Instance, New, "Internal error handling connection");
+ return;
+ }
+ }
+
ELine* e = Instance->XLines->matches_exception(New);
if (!e)
{
@@ -969,15 +983,6 @@ void userrec::AddClient(InspIRCd* Instance, int socket, int port, bool iscached,
}
}
- if (socket > -1)
- {
- if (!Instance->SE->AddFd(New))
- {
- userrec::QuitUser(Instance, New, "Internal error handling connection");
- return;
- }
- }
-
New->WriteServ("NOTICE Auth :*** Looking up your hostname...");
}