]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/logger.cpp
Fix bug #509 reported by Casey: bans were not applied on non-opped users (1.2 only)
[user/henk/code/inspircd.git] / src / logger.cpp
index 20235a826030ebc315d85a5e03de565e9003b470..8e887830db0c10c8d97790f89e9b784482436a3f 100644 (file)
@@ -333,57 +333,17 @@ void LogManager::Log(const std::string &type, int loglevel, const std::string &m
 FileWriter::FileWriter(InspIRCd* Instance, FILE* logfile)
 : ServerInstance(Instance), log(logfile), writeops(0)
 {
-       if (log)
-       {
-               Instance->SE->NonBlocking(fileno(log));
-               SetFd(fileno(log));
-               buffer.clear();
-       }
 }
 
-bool FileWriter::Readable()
+void FileWriter::HandleEvent(EventType ev, int)
 {
-       return false;
-}
-
-void FileWriter::HandleEvent(EventType, int)
-{
-       WriteLogLine("");
-       if (log)
-       {
-               ServerInstance->SE->DelFd(this);
-       }
 }
 
 void FileWriter::WriteLogLine(const std::string &line)
 {
-       if (line.length())
-       {
-               buffer.append(line);
-       }
-
        if (log)
        {
-               int written = fprintf(log,"%s",buffer.c_str());
-#ifdef WINDOWS
-               buffer.clear();
-#else
-               if ((written >= 0) && (written < (int)buffer.length()))
-               {
-                       buffer.erase(0, buffer.length());
-                       ServerInstance->SE->AddFd(this);
-               }
-               else if (written == -1)
-               {
-                       if (errno == EAGAIN)
-                               ServerInstance->SE->AddFd(this);
-               }
-               else
-               {
-                       /* Wrote the whole buffer, and no need for write callback */
-                       buffer.clear();
-               }
-#endif
+               fprintf(log,"%s",line.c_str());
                if (writeops++ % 20)
                {
                        fflush(log);
@@ -395,25 +355,12 @@ void FileWriter::Close()
 {
        if (log)
        {
-               ServerInstance->SE->Blocking(fileno(log));
-
-               if (buffer.size())
-               {
-                       fprintf(log,"%s",buffer.c_str());
-               }
-
-#ifndef WINDOWS
-               ServerInstance->SE->DelFd(this);
-#endif
-
                fflush(log);
                fclose(log);
        }
-
-       buffer.clear();
 }
 
 FileWriter::~FileWriter()
 {
-       this->Close();
 }
+