]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/inspircd.cpp
Only send 320 numeric if the SSL user is on our port
[user/henk/code/inspircd.git] / src / inspircd.cpp
index a834d4d5cd934768e996bbaba5bf45f61c59075a..c59fcda9fd1855fe628d5d22d75f173949c79a69 100644 (file)
@@ -21,11 +21,9 @@ using namespace std;
 #include "inspircd_config.h"
 #include "inspircd.h"
 #include "inspircd_io.h"
-#include <unistd.h>
 #include <fcntl.h>
 #include <sys/errno.h>
 #include <sys/ioctl.h>
-#include <sys/utsname.h>
 #include <time.h>
 #include <string>
 #ifdef GCC3
@@ -116,6 +114,16 @@ const char* FindServerNamePtr(std::string servername)
        return FindServerNamePtr(servername);
 }
 
+bool FindServerName(std::string servername)
+{
+       for (servernamelist::iterator a = servernames.begin(); a < servernames.end(); a++)
+       {
+               if (*a == servername)
+                       return true;
+       }
+       return false;
+}
+
 std::string InspIRCd::GetRevision()
 {
        /* w00t got me to replace a bunch of strtok_r
@@ -377,8 +385,8 @@ void InspIRCd::BuildISupport()
         // the neatest way to construct the initial 005 numeric, considering the number of configure constants to go in it...
        std::stringstream v;
        v << "WALLCHOPS MODES=" << MAXMODES << " CHANTYPES=# PREFIX=(ohv)@%+ MAP SAFELIST MAXCHANNELS=" << MAXCHANS << " MAXBANS=60 NICKLEN=" << NICKMAX-1;
-       v << " CASEMAPPING=rfc1459 STATUSMSG=@+ CHARSET=ascii TOPICLEN=" << MAXTOPIC << " KICKLEN=" << MAXKICK << " MAXTARGETS=" << Config->MaxTargets << " AWAYLEN=";
-       v << MAXAWAY << " CHANMODES=b,k,l,psmnti NETWORK=" << Config->Network;
+       v << " CASEMAPPING=rfc1459 STATUSMSG=@%+ CHARSET=ascii TOPICLEN=" << MAXTOPIC << " KICKLEN=" << MAXKICK << " MAXTARGETS=" << Config->MaxTargets << " AWAYLEN=";
+       v << MAXAWAY << " CHANMODES=b,k,l,psmnti FNC WALLVOICES WALLCHOPS NETWORK=" << Config->Network;
        Config->data005 = v.str();
        FOREACH_MOD(I_On005Numeric,On005Numeric(Config->data005));
 }
@@ -451,12 +459,14 @@ bool InspIRCd::LoadModule(const char* filename)
 #endif
        std::string filename_str = filename;
 #ifndef STATIC_LINK
+#ifndef IS_CYGWIN
        if (!DirValid(modfile))
        {
                log(DEFAULT,"Module %s is not within the modules directory.",modfile);
                snprintf(MODERR,MAXBUF,"Module %s is not within the modules directory.",modfile);
                return false;
        }
+#endif
 #endif
        log(DEBUG,"Loading module: %s",modfile);
 #ifndef STATIC_LINK
@@ -478,7 +488,6 @@ bool InspIRCd::LoadModule(const char* filename)
                 {
                         log(DEFAULT,"Unable to load %s: %s",modfile,factory[MODCOUNT+1]->LastError());
                        snprintf(MODERR,MAXBUF,"Loader/Linker error: %s",factory[MODCOUNT+1]->LastError());
-                       MODCOUNT--;
                        return false;
                 }
                 if (factory[MODCOUNT+1]->factory)
@@ -579,7 +588,6 @@ int InspIRCd::Run()
        userrec* cu = NULL;
        InspSocket* s = NULL;
        InspSocket* s_del = NULL;
-       char* target;
        unsigned int numberactive;
         sockaddr_in sock_us;     // our port number
        socklen_t uslen;         // length of our port number
@@ -632,7 +640,11 @@ int InspIRCd::Run()
                
                /* Once a second, do the background processing */
                if (TIME != OLDTIME)
+               {
+                       if (TIME < OLDTIME)
+                               WriteOpers("*** \002EH?!\002 -- Time is flowing BACKWARDS in this dimension! Clock drifted backwards %d secs.",abs(OLDTIME-TIME));
                        DoBackgroundUserStuff(TIME);
+               }
 
                /* Call the socket engine to wait on the active
                 * file descriptors. The socket engine has everything's