*/
/* $Install: src/inspircd $(BINPATH) */
-
-
#include "inspircd.h"
#include <signal.h>
#ifndef RUSAGE_SELF
#define RUSAGE_SELF 0
#endif
+
+ /* CRT memory debugging */
+ #ifdef DEBUG
+ #define _CRTDBG_MAP_ALLOC
+ #include <stdlib.h>
+ #include <crtdbg.h>
+ #endif
#endif
#include <fstream>
InspIRCd::InspIRCd(int argc, char** argv)
: GlobalCulls(this),
- /* Functor initialisation. Note that the ordering here is very important. */
+ /* Functor initialisation. Note that the ordering here is very important.
+ *
+ * THIS MUST MATCH ORDER OF DECLARATION OF THE HandleWhateverFunc classes
+ * within class InspIRCd.
+ */
HandleProcessUser(this),
HandleIsNick(this),
HandleIsIdent(this),
HandleFindDescriptor(this),
HandleFloodQuitUser(this),
-
- /* Functor pointer initialisation. Must match the order of the list above */
+ HandleIsChannel(this),
+ HandleIsSID(this),
+ HandleRehash(this),
+
+ /* Functor pointer initialisation. Must match the order of the list above
+ *
+ * THIS MUST MATCH THE ORDER OF DECLARATION OF THE FUNCTORS, e.g. the methods
+ * themselves within the class.
+ */
ProcessUser(&HandleProcessUser),
+ IsChannel(&HandleIsChannel),
+ IsSID(&HandleIsSID),
+ Rehash(&HandleRehash),
IsNick(&HandleIsNick),
IsIdent(&HandleIsIdent),
FindDescriptor(&HandleFindDescriptor),
FloodQuitUser(&HandleFloodQuitUser)
{
-
+#ifdef WIN32
+ _CrtSetDbgFlag ( _CRTDBG_CHECK_ALWAYS_DF | _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
+#endif
int found_ports = 0;
FailedPortList pl;
int do_version = 0, do_nofork = 0, do_debug = 0,
{
printf("\nWARNING: Not all your client ports could be bound --\nstarting anyway with %d of %d client ports bound.\n\n", bounditems, found_ports);
printf("The following port(s) failed to bind:\n");
+ printf("Hint: Try using an IP instead of blank or *\n\n");
int j = 1;
for (FailedPortList::iterator i = pl.begin(); i != pl.end(); i++, j++)
{