]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/helperfuncs.cpp
Fix for bug #646, reported by whotookspaz (+y not being applied to existing channels...
[user/henk/code/inspircd.git] / src / helperfuncs.cpp
index d46f53ec7fa7c1c3567e6e42fecc467ee74f909b..9f3bca72917c47447087a6109ebb7647a5624cb5 100644 (file)
  * ---------------------------------------------------
  */
 
-/* $Core: libIRCDhelper */
+/* $Core */
 
 #include "inspircd.h"
-#include "wildcard.h"
 #include "xline.h"
 #include "exitcodes.h"
 
@@ -307,37 +306,7 @@ bool InspIRCd::OpenLog(char**, int)
        {
                if (Config->logpath.empty())
                {
-                       std::string path = std::string(home) + "/.inspircd";
-                       // This tries to create the ~/.inspircd. If it succeeds, then we go ahead and use it.
-                       // If it fails due to an existing target, then we use it anyway.
-                       // Either way, we make sure we can get write access to the log at this point.
-                       if (!mkdir(path.c_str(), 0700) || errno == EEXIST)
-                       {
-                               /* Log to ~/.inspircd/ircd.log */
-                               Config->logpath = path + "/startup.log";
-                               FILE* fd = fopen(Config->logpath.c_str(), "a+");
-                               if (!fd)
-                               {
-                                       // Could not get write access... Why?
-                                       if (errno == ENOTDIR)
-                                               // ~/.inspircd is not actually a directory!
-                                               printf("\nWARNING: Unable to create directory: %s (Exists and is not a directory)\n", path.c_str());
-                                       else
-                                               // Not writable for some other reason (no +w access, readonly fs, file too big, whatever).
-                                               printf("\nWARNING: No write access to %s (%s)\n", Config->logpath.c_str(), strerror(errno));
-                                       Config->logpath = "./startup.log";
-                               }
-                               else
-                               {
-                                       Config->log_file = fd;
-                               }
-                       }
-                       else
-                       {
-                               /* Couldn't make ~/.inspircd directory, log to current dir */
-                               Config->logpath = "./startup.log";
-                               printf("\nWARNING: Unable to create directory: %s (%s)\n", path.c_str(), strerror(errno));
-                       }
+                       Config->logpath = "./startup.log";
                }
 
                if (!Config->log_file)
@@ -469,3 +438,17 @@ std::string InspIRCd::TimeString(time_t curtime)
        return std::string(ctime(&curtime),24);
 }
 
+// You should only pass a single character to this.
+void InspIRCd::AddExtBanChar(char c)
+{
+       std::string &tok = Config->data005;
+       std::string::size_type ebpos;
+       
+       if ((ebpos = tok.find(" EXTBAN=,")) == std::string::npos)
+       {
+               tok.append(" EXTBAN=,");
+               tok.push_back(c);
+       }
+       else
+               tok.insert(ebpos + 9, 1, c);
+}