]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/helperfuncs.cpp
Fix for bug #376 - FEATURE - (sorry w00t) - not backporting to stable.
[user/henk/code/inspircd.git] / src / helperfuncs.cpp
index 612658d2095f34171a7b35f0d57114ab7eeddb27..9363e33764aa3cf5a1a5b2914e01d028854a5160 100644 (file)
@@ -31,7 +31,7 @@ static time_t LAST = 0;
 void InspIRCd::Log(int level, const char* text, ...)
 {
        /* sanity check, just in case */
-       if (!this->Config)
+       if (!this->Config || !this->Logger)
                return;
 
        /* Do this check again here so that we save pointless vsnprintf calls */
@@ -51,7 +51,7 @@ void InspIRCd::Log(int level, const char* text, ...)
 void InspIRCd::Log(int level, const std::string &text)
 {
        /* sanity check, just in case */
-       if (!this->Config)
+       if (!this->Config || !this->Logger)
                return;
 
        /* If we were given -debug we output all messages, regardless of configured loglevel */
@@ -389,7 +389,7 @@ bool InspIRCd::IsChannel(const char *chname)
 }
 
 /* true for valid nickname, false else */
-bool InspIRCd::IsNick(const char* n)
+bool IsNickHandler::Call(const char* n)
 {
        if (!n || !*n)
                return false;
@@ -418,7 +418,7 @@ bool InspIRCd::IsNick(const char* n)
 }
 
 /* return true for good ident, false else */
-bool InspIRCd::IsIdent(const char* n)
+bool IsIdentHandler::Call(const char* n)
 {
        if (!n || !*n)
                return false;
@@ -442,7 +442,7 @@ bool InspIRCd::IsIdent(const char* n)
 }
 
 /* open the proper logfile */
-void InspIRCd::OpenLog(char** argv, int argc)
+bool InspIRCd::OpenLog(char** argv, int argc)
 {
        Config->MyDir = Config->GetFullProgDir();
 
@@ -450,11 +450,7 @@ void InspIRCd::OpenLog(char** argv, int argc)
        {
                if (Config->logpath.empty())
                {
-#ifndef DARWIN
                        Config->logpath = Config->MyDir + "/ircd.log";
-#else
-                       Config->logpath = "/var/log/ircd.log";
-#endif
                }
 
                Config->log_file = fopen(Config->logpath.c_str(),"a+");
@@ -466,26 +462,20 @@ void InspIRCd::OpenLog(char** argv, int argc)
 
        if (!Config->log_file)
        {
-               printf("ERROR: Could not write to logfile %s: %s\n\n", Config->logpath.c_str(), strerror(errno));
-               Exit(EXIT_STATUS_LOG);
+               this->Logger = NULL;
+               return false;
        }
 
        this->Logger = new FileLogger(this, Config->log_file);
+       return true;
 }
 
 void InspIRCd::CheckRoot()
 {
-#ifndef DARWIN
        if (geteuid() == 0)
        {
                printf("WARNING!!! You are running an irc server as ROOT!!! DO NOT DO THIS!!!\n\n");
                this->Log(DEFAULT,"Cant start as root");
-#else
-       if (geteuid() != 16)
-       {
-               printf("WARNING!!! You are not running inspircd as the ircdaemon user!!! YOU CAN NOT DO THIS!!!\n\n");
-               this->Log(DEFAULT,"Must start as user ircdaemon");
-#endif
                Exit(EXIT_STATUS_ROOT);
        }
 }