summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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...");
}