"Couldn't load module on startup", /* 13 */
"Could not create windows forked process", /* 14 */
"Received SIGTERM", /* 15 */
+ "Bad command handler loaded", /* 16 */
+ "RegisterServiceCtrlHandler failed", /* 17 */
+ "UpdateSCMStatus failed", /* 18 */
+ "CreateEvent failed" /* 19 */
};
void InspIRCd::Cleanup()
WindowsForkKillOwner(this);
FreeConsole();
}
+ /* Set win32 service as running, if we are running as a service */
+ SetServiceRunning();
#endif
Logs->Log("STARTUP", DEFAULT, "Startup complete as '%s'[%s], %d max open sockets", Config->ServerName,Config->GetSID().c_str(), SE->GetMaxFds());
*/
if (TIME != OLDTIME)
{
- if (TIME < OLDTIME)
+ /* Allow a buffer of two seconds drift on this so that ntpdate etc dont harass admins */
+ if (TIME < OLDTIME - 2)
{
SNO->WriteToSnoMask('d', "\002EH?!\002 -- Time is flowing BACKWARDS in this dimension! Clock drifted backwards %lu secs.", (unsigned long)OLDTIME-TIME);
}
- else if (TIME != OLDTIME + 1)
+ else if (TIME > OLDTIME + 2)
{
SNO->WriteToSnoMask('d', "\002EH?!\002 -- Time is jumping FORWARDS! Clock skipped %lu secs.", (unsigned long)TIME - OLDTIME);
}
* An ircd in five lines! bwahahaha. ahahahahaha. ahahah *cough*.
*/
-int main(int argc, char ** argv)
-{
- SI = new InspIRCd(argc, argv);
- mysig = &SI->s_signal;
- SI->Run();
- delete SI;
- return 0;
-}
-
/* this returns true when all modules are satisfied that the user should be allowed onto the irc server
* (until this returns true, a user will block in the waiting state, waiting to connect up to the
* registration timeout maximum seconds)
{
*mysig = signal;
}
+
+/* On posix systems, the flow of the program starts right here, with
+ * ENTRYPOINT being a #define that defines main(). On Windows, ENTRYPOINT
+ * defines smain() and the real main() is in the service code under
+ * win32service.cpp. This allows the service control manager to control
+ * the process where we are running as a windows service.
+ */
+ENTRYPOINT
+{
+ SI = new InspIRCd(argc, argv);
+ mysig = &SI->s_signal;
+ SI->Run();
+ delete SI;
+ return 0;
+}