summaryrefslogtreecommitdiff
path: root/src/inspircd.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/inspircd.cpp')
-rw-r--r--src/inspircd.cpp14
1 files changed, 5 insertions, 9 deletions
diff --git a/src/inspircd.cpp b/src/inspircd.cpp
index f4a9b7e32..5c1835b03 100644
--- a/src/inspircd.cpp
+++ b/src/inspircd.cpp
@@ -41,8 +41,6 @@
#include "exitcodes.h"
#include "caller.h"
-using irc::sockets::NonBlocking;
-using irc::sockets::Blocking;
using irc::sockets::insp_ntoa;
using irc::sockets::insp_inaddr;
using irc::sockets::insp_sockaddr;
@@ -309,6 +307,10 @@ InspIRCd::InspIRCd(int argc, char** argv)
memset(&server, 0, sizeof(server));
memset(&client, 0, sizeof(client));
+ SocketEngineFactory* SEF = new SocketEngineFactory();
+ SE = SEF->Create(this);
+ delete SEF;
+
this->s_signal = 0;
this->unregistered_count = 0;
@@ -454,13 +456,7 @@ InspIRCd::InspIRCd(int argc, char** argv)
}
}
-
- /* Because of limitations in kqueue on freebsd, we must fork BEFORE we
- * initialize the socket engine.
- */
- SocketEngineFactory* SEF = new SocketEngineFactory();
- SE = SEF->Create(this);
- delete SEF;
+ SE->RecoverFromFork();
this->Modes = new ModeParser(this);
this->AddServerName(Config->ServerName);