#define _LARGEFILE_SOURCE
#endif
-#ifndef WIN32
+#ifndef _WIN32
#define DllExport
#define CoreExport
-#define printf_c printf
#else
#include "inspircd_win32wrapper.h"
/** Windows defines these already */
#endif
// Required system headers.
+#include <csignal>
#include <ctime>
#include <cstdarg>
#include <algorithm>
#include <cstring>
#include <climits>
#include <cstdio>
-#ifndef WIN32
+#ifndef _WIN32
#include <unistd.h>
#endif
#include "inspircd_config.h"
#include "inspircd_version.h"
#include "typedefs.h"
+#include "consolecolors.h"
CoreExport extern InspIRCd* ServerInstance;
*/
inline std::string ConvToStr(char in)
{
- return std::string(in,1);
+ return std::string(1, in);
}
/** Template function to convert any input type to std::string
/** Total bytes of data received
*/
unsigned long statsRecv;
+#ifdef _WIN32
+ /** Cpu usage at last sample
+ */
+ FILETIME LastCPU;
+ /** Time QP sample was read
+ */
+ LARGE_INTEGER LastSampled;
+ /** QP frequency
+ */
+ LARGE_INTEGER QPFrequency;
+#else
/** Cpu usage at last sample
*/
timeval LastCPU;
/** Time last sample was read
*/
timespec LastSampled;
+#endif
/** The constructor initializes all the counts to zero
*/
serverstats()
*/
char ReadBuffer[65535];
-#ifdef WIN32
- IPC* WindowsIPC;
-#endif
-
public:
/** Global cull list, will be processed on next iteration
/** Set to the current signal recieved
*/
- int s_signal;
+ static sig_atomic_t s_signal;
/** Protocol interface, overridden by server protocol modules
*/
*/
bool IsValidMask(const std::string &mask);
+ /** Strips all color codes from the given string
+ * @param sentence The string to strip from
+ */
+ static void StripColor(std::string &sentence);
+
+ /** Parses color codes from string values to actual color codes
+ * @param input The data to process
+ */
+ static void ProcessColors(file_cache& input);
+
/** Rehash the local server
*/
void RehashServer();
/** Attempt to write the process id to a given file
* @param filename The PID file to attempt to write to
+ * @param exitonfail If true and the PID fail cannot be written log to stdout and exit, otherwise only log on failure
* @return This function may bail if the file cannot be written
*/
- void WritePID(const std::string &filename);
+ void WritePID(const std::string& filename, bool exitonfail = true);
/** This constructor initialises all the subsystems and reads the config file.
* @param argc The argument count passed to main()