summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorpeavey <peavey@e03df62e-2008-0410-955e-edbf42e46eb7>2007-07-25 11:53:07 +0000
committerpeavey <peavey@e03df62e-2008-0410-955e-edbf42e46eb7>2007-07-25 11:53:07 +0000
commit326191cd160e141958a2b3d536d37dabf7922568 (patch)
tree5abc088132395f67f9e81ff9d74981a6e8cf298a /src
parentc88d4a3511cd9706b5c02c576b0445f13391afd3 (diff)
Put FileLogger in it's own class. Useful when logging doing more focused logging
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7561 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src')
-rw-r--r--src/inspircd.cpp86
1 files changed, 0 insertions, 86 deletions
diff --git a/src/inspircd.cpp b/src/inspircd.cpp
index 44f658427..d039d7314 100644
--- a/src/inspircd.cpp
+++ b/src/inspircd.cpp
@@ -811,89 +811,3 @@ int InspIRCd::GetTimeDelta()
{
return time_delta;
}
-
-bool FileLogger::Readable()
-{
- return false;
-}
-
-void FileLogger::HandleEvent(EventType et, int errornum)
-{
- this->WriteLogLine("");
- if (log)
- ServerInstance->SE->DelFd(this);
-}
-
-void FileLogger::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
- if (writeops++ % 20)
- {
- fflush(log);
- }
- }
-}
-
-void FileLogger::Close()
-{
- if (log)
- {
- /* Burlex: Windows assumes nonblocking on FILE* pointers anyway, and also "file" fd's aren't the same
- * as socket fd's. */
-#ifndef WIN32
- int flags = fcntl(fileno(log), F_GETFL, 0);
- fcntl(fileno(log), F_SETFL, flags ^ O_NONBLOCK);
-#endif
- if (buffer.size())
- fprintf(log,"%s",buffer.c_str());
-
-#ifndef WINDOWS
- ServerInstance->SE->DelFd(this);
-#endif
-
- fflush(log);
- fclose(log);
- }
-
- buffer.clear();
-}
-
-FileLogger::FileLogger(InspIRCd* Instance, FILE* logfile) : ServerInstance(Instance), log(logfile), writeops(0)
-{
- if (log)
- {
- irc::sockets::NonBlocking(fileno(log));
- this->SetFd(fileno(log));
- buffer.clear();
- }
-}
-
-FileLogger::~FileLogger()
-{
- this->Close();
-}
-