diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/configreader.cpp | 3 | ||||
-rw-r--r-- | src/helperfuncs.cpp | 5 | ||||
-rw-r--r-- | src/inspircd.cpp | 90 | ||||
-rw-r--r-- | src/modmanager_dynamic.cpp | 15 | ||||
-rw-r--r-- | src/modmanager_static.cpp | 7 | ||||
-rw-r--r-- | src/socketengines/socketengine_epoll.cpp | 7 | ||||
-rw-r--r-- | src/socketengines/socketengine_kqueue.cpp | 7 | ||||
-rw-r--r-- | src/socketengines/socketengine_poll.cpp | 3 | ||||
-rw-r--r-- | src/socketengines/socketengine_ports.cpp | 7 |
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; |