summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/configreader.cpp3
-rw-r--r--src/helperfuncs.cpp5
-rw-r--r--src/inspircd.cpp90
-rw-r--r--src/modmanager_dynamic.cpp15
-rw-r--r--src/modmanager_static.cpp7
-rw-r--r--src/socketengines/socketengine_epoll.cpp7
-rw-r--r--src/socketengines/socketengine_kqueue.cpp7
-rw-r--r--src/socketengines/socketengine_poll.cpp3
-rw-r--r--src/socketengines/socketengine_ports.cpp7
9 files changed, 86 insertions, 58 deletions
diff --git a/src/configreader.cpp b/src/configreader.cpp
index 660df77d7..82f4d7c43 100644
--- a/src/configreader.cpp
+++ b/src/configreader.cpp
@@ -28,6 +28,7 @@
#include "exitcodes.h"
#include "commands/cmd_whowas.h"
#include "configparser.h"
+#include <iostream>
#ifdef _WIN32
#include <Iphlpapi.h>
#pragma comment(lib, "Iphlpapi.lib")
@@ -750,7 +751,7 @@ void ServerConfig::Apply(ServerConfig* old, const std::string &useruid)
continue;
// On startup, print out to console (still attached at this point)
if (!old)
- printf("%s\n", line.c_str());
+ std::cout << line << std::endl;
// If a user is rehashing, tell them directly
if (user)
user->SendText(":%s NOTICE %s :*** %s", ServerInstance->Config->ServerName.c_str(), user->nick.c_str(), line.c_str());
diff --git a/src/helperfuncs.cpp b/src/helperfuncs.cpp
index 7351a07de..a6df520c5 100644
--- a/src/helperfuncs.cpp
+++ b/src/helperfuncs.cpp
@@ -32,6 +32,7 @@
#include "inspircd.h"
#include "xline.h"
#include "exitcodes.h"
+#include <iostream>
std::string InspIRCd::GetServerDescription(const std::string& servername)
{
@@ -319,8 +320,8 @@ void InspIRCd::CheckRoot()
#ifndef _WIN32
if (geteuid() == 0)
{
- printf("WARNING!!! You are running an irc server as ROOT!!! DO NOT DO THIS!!!\n\n");
- this->Logs->Log("STARTUP",DEFAULT,"Cant start as root");
+ std::cout << "ERROR: You are running an irc server as root! DO NOT DO THIS!" << std::endl << std::endl;
+ this->Logs->Log("STARTUP",DEFAULT,"Can't start as root");
Exit(EXIT_STATUS_ROOT);
}
#endif
diff --git a/src/inspircd.cpp b/src/inspircd.cpp
index 42047ce11..cb50595d2 100644
--- a/src/inspircd.cpp
+++ b/src/inspircd.cpp
@@ -45,9 +45,14 @@
#include <pwd.h> // setuid
#include <grp.h> // setgid
+#else
+ WORD g_wOriginalColors;
+ WORD g_wBackgroundColor;
+ HANDLE g_hStdout;
#endif
#include <fstream>
+#include <iostream>
#include "xline.h"
#include "bancache.h"
#include "socketengine.h"
@@ -242,7 +247,7 @@ void InspIRCd::QuickExit(int status)
bool InspIRCd::DaemonSeed()
{
#ifdef _WIN32
- printf_c("InspIRCd Process ID: \033[1;32m%lu\033[0m\n", GetCurrentProcessId());
+ std::cout << "InspIRCd Process ID: " << con_green << GetCurrentProcessId() << con_reset << std::endl;
return true;
#else
signal(SIGTERM, InspIRCd::QuickExit);
@@ -264,7 +269,7 @@ bool InspIRCd::DaemonSeed()
exit(0);
}
setsid ();
- printf("InspIRCd Process ID: \033[1;32m%lu\033[0m\n",(unsigned long)getpid());
+ std::cout << "InspIRCd Process ID: " << con_green << getpid() << con_reset << std::endl;
signal(SIGTERM, InspIRCd::SetSignal);
@@ -297,7 +302,7 @@ void InspIRCd::WritePID(const std::string &filename)
}
else
{
- printf("Failed to write PID-file '%s', exiting.\n",fname.c_str());
+ std::cout << "Failed to write PID-file '" << fname << "', exiting." << std::endl;
this->Logs->Log("STARTUP",DEFAULT,"Failed to write PID-file '%s', exiting.",fname.c_str());
Exit(EXIT_STATUS_PID);
}
@@ -389,6 +394,20 @@ InspIRCd::InspIRCd(int argc, char** argv) :
#ifdef _WIN32
srand(TIME.tv_nsec ^ TIME.tv_sec);
+
+ // Initialize the console values
+ g_hStdout = GetStdHandle(STD_OUTPUT_HANDLE);
+ CONSOLE_SCREEN_BUFFER_INFO bufinf;
+ if(GetConsoleScreenBufferInfo(g_hStdout, &bufinf))
+ {
+ g_wOriginalColors = bufinf.wAttributes & 0x00FF;
+ g_wBackgroundColor = bufinf.wAttributes & 0x00F0;
+ }
+ else
+ {
+ g_wOriginalColors = FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_GREEN;
+ g_wBackgroundColor = 0;
+ }
#else
srandom(TIME.tv_nsec ^ TIME.tv_sec);
#endif
@@ -426,8 +445,9 @@ InspIRCd::InspIRCd(int argc, char** argv) :
/* Unknown parameter */
default:
/* Fall through to handle other weird values too */
- printf("Unknown parameter '%s'\n", argv[optind-1]);
- printf("Usage: %s [--nofork] [--nolog] [--debug] [--logfile <filename>]\n%*s[--runasroot] [--version] [--config <config>] [--testsuite]\n", argv[0], static_cast<int>(8+strlen(argv[0])), " ");
+ std::cout << "Unknown parameter '" << argv[optind-1] << "'" << std::endl;
+ std::cout << "Usage: " << argv[0] << " [--nofork] [--nolog] [--debug] [--logfile <filename>] " << std::endl <<
+ std::string(static_cast<int>(8+strlen(argv[0])), ' ') << "[--runasroot] [--version] [--config <config>] [--testsuite]" << std::endl;
Exit(EXIT_STATUS_ARGV);
break;
}
@@ -438,7 +458,7 @@ InspIRCd::InspIRCd(int argc, char** argv) :
if (do_version)
{
- printf("\n%s r%s\n", VERSION, REVISION);
+ std::cout << std::endl << VERSION << " r" << REVISION << std::endl;
Exit(EXIT_STATUS_NOERROR);
}
@@ -462,7 +482,7 @@ InspIRCd::InspIRCd(int argc, char** argv) :
}
else if (!this->OpenLog(argv, argc))
{
- printf("ERROR: Could not open initial logfile %s: %s\n\n", Config->cmdline.startup_log.c_str(), strerror(errno));
+ std::cout << "ERROR: Could not open initial logfile " << Config->cmdline.startup_log << ": " << strerror(errno) << std::endl << std::endl;
Exit(EXIT_STATUS_LOG);
}
@@ -480,18 +500,18 @@ InspIRCd::InspIRCd(int argc, char** argv) :
else
#endif
{
- printf("ERROR: Cannot open config file: %s\nExiting...\n", ConfigFileName.c_str());
+ std::cout << "ERROR: Cannot open config file: " << ConfigFileName << std::endl << "Exiting..." << std::endl;
this->Logs->Log("STARTUP",DEFAULT,"Unable to open config file %s", ConfigFileName.c_str());
Exit(EXIT_STATUS_CONFIG);
}
}
- printf_c("\033[1;32mInspire Internet Relay Chat Server, compiled %s at %s\n",__DATE__,__TIME__);
- printf_c("(C) InspIRCd Development Team.\033[0m\n\n");
- printf_c("Developers:\n");
- printf_c("\t\033[1;32mBrain, FrostyCoolSlug, w00t, Om, Special, peavey\n");
- printf_c("\t\033[1;32maquanight, psychon, dz, danieldg, jackmcbarn\033[0m\n\n");
- printf_c("Others:\t\t\t\033[1;32mSee /INFO Output\033[0m\n");
+ std::cout << con_green << "Inspire Internet Relay Chat Server" << con_reset << ", compiled on " __DATE__ " at " __TIME__ << std::endl;
+ std::cout << con_green << "(C) InspIRCd Development Team." << con_reset << std::endl << std::endl;
+ std::cout << "Developers:" << std::endl;
+ std::cout << con_green << "\tBrain, FrostyCoolSlug, w00t, Om, Special, peavey" << std::endl;
+ std::cout << "\taquanight, psychon, dz, danieldg, jackmcbarn" << con_reset << std::endl << std::endl;
+ std::cout << "Others:\t\t\t" << con_green << "See /INFO Output" << con_reset << std::endl;
this->Modes = new ModeParser;
@@ -500,14 +520,14 @@ InspIRCd::InspIRCd(int argc, char** argv) :
this->CheckRoot();
else
{
- printf("* WARNING * WARNING * WARNING * WARNING * WARNING * \n\n");
- printf("YOU ARE RUNNING INSPIRCD AS ROOT. THIS IS UNSUPPORTED\n");
- printf("AND IF YOU ARE HACKED, CRACKED, SPINDLED OR MUTILATED\n");
- printf("OR ANYTHING ELSE UNEXPECTED HAPPENS TO YOU OR YOUR\n");
- printf("SERVER, THEN IT IS YOUR OWN FAULT. IF YOU DID NOT MEAN\n");
- printf("TO START INSPIRCD AS ROOT, HIT CTRL+C NOW AND RESTART\n");
- printf("THE PROGRAM AS A NORMAL USER. YOU HAVE BEEN WARNED!\n");
- printf("\nInspIRCd starting in 20 seconds, ctrl+c to abort...\n");
+ std::cout << "* WARNING * WARNING * WARNING * WARNING * WARNING *" << std::endl
+ << "YOU ARE RUNNING INSPIRCD AS ROOT. THIS IS UNSUPPORTED" << std::endl
+ << "AND IF YOU ARE HACKED, CRACKED, SPINDLED OR MUTILATED" << std::endl
+ << "OR ANYTHING ELSE UNEXPECTED HAPPENS TO YOU OR YOUR" << std::endl
+ << "SERVER, THEN IT IS YOUR OWN FAULT. IF YOU DID NOT MEAN" << std::endl
+ << "TO START INSPIRCD AS ROOT, HIT CTRL+C NOW AND RESTART" << std::endl
+ << "THE PROGRAM AS A NORMAL USER. YOU HAVE BEEN WARNED!" << std::endl << std::endl
+ << "InspIRCd starting in 20 seconds, ctrl+c to abort..." << std::endl;
sleep(20);
}
#endif
@@ -518,7 +538,7 @@ InspIRCd::InspIRCd(int argc, char** argv) :
{
if (!this->DaemonSeed())
{
- printf("ERROR: could not go into daemon mode. Shutting down.\n");
+ std::cout << "ERROR: could not go into daemon mode. Shutting down." << std::endl;
Logs->Log("STARTUP", DEFAULT, "ERROR: could not go into daemon mode. Shutting down.");
Exit(EXIT_STATUS_FORK);
}
@@ -564,7 +584,7 @@ InspIRCd::InspIRCd(int argc, char** argv) :
int bounditems = BindPorts(pl);
- printf("\n");
+ std::cout << std::endl;
this->Modules->LoadAll();
@@ -574,26 +594,26 @@ InspIRCd::InspIRCd(int argc, char** argv) :
if (!pl.empty())
{
- printf("\nWARNING: Not all your client ports could be bound --\nstarting anyway with %d of %d client ports bound.\n\n",
- bounditems, bounditems + (int)pl.size());
- printf("The following port(s) failed to bind:\n");
- printf("Hint: Try using a public IP instead of blank or *\n\n");
+ std::cout << std::endl << "WARNING: Not all your client ports could be bound -- " << std::endl << "starting anyway with " << bounditems
+ << " of " << bounditems + (int)pl.size() << " client ports bound." << std::endl << std::endl;
+ std::cout << "The following port(s) failed to bind:" << std::endl << std::endl;
int j = 1;
for (FailedPortList::iterator i = pl.begin(); i != pl.end(); i++, j++)
{
- printf("%d.\tAddress: %s\tReason: %s\n", j, i->first.empty() ? "<all>" : i->first.c_str(), i->second.c_str());
+ std::cout << j << ".\tAddress: " << (i->first.empty() ? "<all>" : i->first) << " \tReason: " << i->second << std::endl;
}
+
+ std::cout << std::endl << "Hint: Try using a public IP instead of blank or *" << std::endl;
}
- printf("\nInspIRCd is now running as '%s'[%s] with %d max open sockets\n",
- Config->ServerName.c_str(),Config->GetSID().c_str(), SE->GetMaxFds());
+ std::cout << "InspIRCd is now running as '" << Config->ServerName << "'[" << Config->GetSID() << "] with " << SE->GetMaxFds() << " max open sockets" << std::endl;
#ifndef _WIN32
if (!Config->cmdline.nofork)
{
if (kill(getppid(), SIGTERM) == -1)
{
- printf("Error killing parent process: %s\n",strerror(errno));
+ std::cout << "Error killing parent process: " << strerror(errno) << std::endl;
Logs->Log("STARTUP", DEFAULT, "Error killing parent process: %s",strerror(errno));
}
}
@@ -778,9 +798,9 @@ int InspIRCd::Run()
if(QueryPerformanceCounter(&stats->LastSampled))
{
FILETIME CreationTime;
- FILETIME ExitTime;
- FILETIME KernelTime;
- FILETIME UserTime;
+ FILETIME ExitTime;
+ FILETIME KernelTime;
+ FILETIME UserTime;
GetProcessTimes(GetCurrentProcess(), &CreationTime, &ExitTime, &KernelTime, &UserTime);
stats->LastCPU.dwHighDateTime = KernelTime.dwHighDateTime + UserTime.dwHighDateTime;
stats->LastCPU.dwLowDateTime = KernelTime.dwLowDateTime + UserTime.dwLowDateTime;
diff --git a/src/modmanager_dynamic.cpp b/src/modmanager_dynamic.cpp
index 0e90a9ae5..27da56c69 100644
--- a/src/modmanager_dynamic.cpp
+++ b/src/modmanager_dynamic.cpp
@@ -24,6 +24,7 @@
#include "command_parse.h"
#include "dns.h"
#include "exitcodes.h"
+#include <iostream>
#ifndef _WIN32
#include <dirent.h>
@@ -183,7 +184,7 @@ void ModuleManager::LoadAll()
{
ModCount = 0;
- printf("\nLoading core commands");
+ std::cout << std::endl << "Loading core commands";
fflush(stdout);
DIR* library = opendir(ServerInstance->Config->ModPath.c_str());
@@ -194,19 +195,19 @@ void ModuleManager::LoadAll()
{
if (InspIRCd::Match(entry->d_name, "cmd_*.so", ascii_case_insensitive_map))
{
- printf(".");
+ std::cout << ".";
fflush(stdout);
if (!Load(entry->d_name, true))
{
ServerInstance->Logs->Log("MODULE", DEFAULT, this->LastError());
- printf_c("\n[\033[1;31m*\033[0m] %s\n\n", this->LastError().c_str());
+ std::cout << std::endl << "[" << con_red << "*" << con_reset << "]" << this->LastError() << std::endl << std::endl;
ServerInstance->Exit(EXIT_STATUS_MODULE);
}
}
}
closedir(library);
- printf("\n");
+ std::cout << std::endl;
}
ConfigTagList tags = ServerInstance->Config->ConfTags("module");
@@ -214,12 +215,12 @@ void ModuleManager::LoadAll()
{
ConfigTag* tag = i->second;
std::string name = tag->getString("name");
- printf_c("[\033[1;32m*\033[0m] Loading module:\t\033[1;32m%s\033[0m\n",name.c_str());
+ std::cout << "[" << con_green << "*" << con_reset << "] Loading module:\t" << con_green << name << con_reset << std::endl;
if (!this->Load(name, true))
{
ServerInstance->Logs->Log("MODULE", DEFAULT, this->LastError());
- printf_c("\n[\033[1;31m*\033[0m] %s\n\n", this->LastError().c_str());
+ std::cout << std::endl << "[" << con_red << "*" << con_reset << "]" << this->LastError() << std::endl << std::endl;
ServerInstance->Exit(EXIT_STATUS_MODULE);
}
}
@@ -236,7 +237,7 @@ void ModuleManager::LoadAll()
{
LastModuleError = "Unable to initialize " + mod->ModuleSourceFile + ": " + modexcept.GetReason();
ServerInstance->Logs->Log("MODULE", DEFAULT, LastModuleError);
- printf_c("\n[\033[1;31m*\033[0m] %s\n\n", LastModuleError.c_str());
+ std::cout << std::endl << "[" << con_red << "*" << con_reset << "]" << LastModuleError << std::endl << std::endl;
ServerInstance->Exit(EXIT_STATUS_MODULE);
}
}
diff --git a/src/modmanager_static.cpp b/src/modmanager_static.cpp
index bb8fda400..b105eea92 100644
--- a/src/modmanager_static.cpp
+++ b/src/modmanager_static.cpp
@@ -21,6 +21,7 @@
#include "inspircd.h"
#include "exitcodes.h"
+#include <iostream>
#ifdef PURE_STATIC
@@ -188,12 +189,12 @@ void ModuleManager::LoadAll()
{
ConfigTag* tag = i->second;
std::string name = tag->getString("name");
- printf_c("[\033[1;32m*\033[0m] Loading module:\t\033[1;32m%s\033[0m\n",name.c_str());
+ std::cout << "[" << con_green << "*" << con_reset << "] Loading module:\t" << con_green << name << con_reset << std::endl;
if (!this->Load(name, true))
{
ServerInstance->Logs->Log("MODULE", DEFAULT, this->LastError());
- printf_c("\n[\033[1;31m*\033[0m] %s\n\n", this->LastError().c_str());
+ std::cout << std::endl << "[" << con_red << "*" << con_reset << "]" << this->LastError() << std::endl << std::endl;
ServerInstance->Exit(EXIT_STATUS_MODULE);
}
}
@@ -209,7 +210,7 @@ void ModuleManager::LoadAll()
{
LastModuleError = "Unable to initialize " + mod->ModuleSourceFile + ": " + modexcept.GetReason();
ServerInstance->Logs->Log("MODULE", DEFAULT, LastModuleError);
- printf_c("\n[\033[1;31m*\033[0m] %s\n\n", LastModuleError.c_str());
+ std::cout << std::endl << "[" << con_red << "*" << con_reset << "]" << LastModuleError << std::endl << std::endl;
ServerInstance->Exit(EXIT_STATUS_MODULE);
}
}
diff --git a/src/socketengines/socketengine_epoll.cpp b/src/socketengines/socketengine_epoll.cpp
index 79d69698a..f7e107e7b 100644
--- a/src/socketengines/socketengine_epoll.cpp
+++ b/src/socketengines/socketengine_epoll.cpp
@@ -26,6 +26,7 @@
#include "socketengine.h"
#include <sys/epoll.h>
#include <ulimit.h>
+#include <iostream>
#define EP_DELAY 5
/** A specialisation of the SocketEngine class, designed to use linux 2.6 epoll().
@@ -61,7 +62,7 @@ EPollEngine::EPollEngine()
else
{
ServerInstance->Logs->Log("SOCKET", DEFAULT, "ERROR: Can't determine maximum number of open sockets!");
- printf("ERROR: Can't determine maximum number of open sockets!\n");
+ std::cout << "ERROR: Can't determine maximum number of open sockets!" << std::endl;
ServerInstance->Exit(EXIT_STATUS_SOCKETENGINE);
}
@@ -72,8 +73,8 @@ EPollEngine::EPollEngine()
{
ServerInstance->Logs->Log("SOCKET",DEFAULT, "ERROR: Could not initialize socket engine: %s", strerror(errno));
ServerInstance->Logs->Log("SOCKET",DEFAULT, "ERROR: Your kernel probably does not have the proper features. This is a fatal error, exiting now.");
- printf("ERROR: Could not initialize epoll socket engine: %s\n", strerror(errno));
- printf("ERROR: Your kernel probably does not have the proper features. This is a fatal error, exiting now.\n");
+ std::cout << "ERROR: Could not initialize epoll socket engine: " << strerror(errno) << std::endl;
+ std::cout << "ERROR: Your kernel probably does not have the proper features. This is a fatal error, exiting now." << std::endl;
ServerInstance->Exit(EXIT_STATUS_SOCKETENGINE);
}
diff --git a/src/socketengines/socketengine_kqueue.cpp b/src/socketengines/socketengine_kqueue.cpp
index 63e16ac6e..5dd653363 100644
--- a/src/socketengines/socketengine_kqueue.cpp
+++ b/src/socketengines/socketengine_kqueue.cpp
@@ -25,6 +25,7 @@
#include <sys/event.h>
#include <sys/time.h>
#include "socketengine.h"
+#include <iostream>
/** A specialisation of the SocketEngine class, designed to use FreeBSD kqueue().
*/
@@ -68,7 +69,7 @@ KQueueEngine::KQueueEngine()
if (MAX_DESCRIPTORS <= 0)
{
ServerInstance->Logs->Log("SOCKET", DEFAULT, "ERROR: Can't determine maximum number of open sockets!");
- printf("ERROR: Can't determine maximum number of open sockets!\n");
+ std::cout << "ERROR: Can't determine maximum number of open sockets!" << std::endl;
ServerInstance->Exit(EXIT_STATUS_SOCKETENGINE);
}
@@ -90,8 +91,8 @@ void KQueueEngine::RecoverFromFork()
{
ServerInstance->Logs->Log("SOCKET",DEFAULT, "ERROR: Could not initialize socket engine. Your kernel probably does not have the proper features.");
ServerInstance->Logs->Log("SOCKET",DEFAULT, "ERROR: this is a fatal error, exiting now.");
- printf("ERROR: Could not initialize socket engine. Your kernel probably does not have the proper features.\n");
- printf("ERROR: this is a fatal error, exiting now.\n");
+ std::cout << "ERROR: Could not initialize socket engine. Your kernel probably does not have the proper features." << std::endl;
+ std::cout << "ERROR: this is a fatal error, exiting now." << std::endl;
ServerInstance->Exit(EXIT_STATUS_SOCKETENGINE);
}
CurrentSetSize = 0;
diff --git a/src/socketengines/socketengine_poll.cpp b/src/socketengines/socketengine_poll.cpp
index dd38c32b9..6a385c8d8 100644
--- a/src/socketengines/socketengine_poll.cpp
+++ b/src/socketengines/socketengine_poll.cpp
@@ -26,6 +26,7 @@
#ifndef SOCKETENGINE_POLL
#define SOCKETENGINE_POLL
+#include <iostream>
#include <vector>
#include <string>
#include <map>
@@ -92,7 +93,7 @@ PollEngine::PollEngine()
else
{
ServerInstance->Logs->Log("SOCKET", DEFAULT, "ERROR: Can't determine maximum number of open sockets: %s", strerror(errno));
- printf("ERROR: Can't determine maximum number of open sockets: %s\n", strerror(errno));
+ std::cout << "ERROR: Can't determine maximum number of open sockets: " << strerror(errno) << std::endl;
ServerInstance->Exit(EXIT_STATUS_SOCKETENGINE);
}
#else
diff --git a/src/socketengines/socketengine_ports.cpp b/src/socketengines/socketengine_ports.cpp
index 5fc645bb1..9a86c47d0 100644
--- a/src/socketengines/socketengine_ports.cpp
+++ b/src/socketengines/socketengine_ports.cpp
@@ -36,6 +36,7 @@
#include "inspircd.h"
#include "socketengine.h"
#include <port.h>
+#include <iostream>
/** A specialisation of the SocketEngine class, designed to use solaris 10 I/O completion ports
*/
@@ -75,7 +76,7 @@ PortsEngine::PortsEngine()
else
{
ServerInstance->Logs->Log("SOCKET", DEFAULT, "ERROR: Can't determine maximum number of open sockets!");
- printf("ERROR: Can't determine maximum number of open sockets!\n");
+ std::cout << "ERROR: Can't determine maximum number of open sockets!" << std::endl;
ServerInstance->Exit(EXIT_STATUS_SOCKETENGINE);
}
EngineHandle = port_create();
@@ -84,8 +85,8 @@ PortsEngine::PortsEngine()
{
ServerInstance->Logs->Log("SOCKET",SPARSE,"ERROR: Could not initialize socket engine: %s", strerror(errno));
ServerInstance->Logs->Log("SOCKET",SPARSE,"ERROR: This is a fatal error, exiting now.");
- printf("ERROR: Could not initialize socket engine: %s\n", strerror(errno));
- printf("ERROR: This is a fatal error, exiting now.\n");
+ std::cout << "ERROR: Could not initialize socket engine: " << strerror(errno) << std::endl;
+ std::cout << "ERROR: This is a fatal error, exiting now." << std::endl;
ServerInstance->Exit(EXIT_STATUS_SOCKETENGINE);
}
CurrentSetSize = 0;