diff options
Diffstat (limited to 'src/modules/m_chanlog.cpp')
-rw-r--r-- | src/modules/m_chanlog.cpp | 98 |
1 files changed, 53 insertions, 45 deletions
diff --git a/src/modules/m_chanlog.cpp b/src/modules/m_chanlog.cpp index 8ba07d9ba..05ab1f482 100644 --- a/src/modules/m_chanlog.cpp +++ b/src/modules/m_chanlog.cpp @@ -15,51 +15,6 @@ /* $ModDesc: Logs snomask output to channel(s). */ -/* - * This is for the "old" chanlog module which intercepted messages going to the logfile.. - * I don't consider it all that useful, and it's quite dangerous if setup incorrectly, so - * this is defined out but left intact in case someone wants to develop it further someday. - * - * -- w00t (aug 23rd, 2008) - */ -#define OLD_CHANLOG 0 - -#if OLD_CHANLOG -class ChannelLogStream : public LogStream -{ - private: - std::string channel; - - public: - ChannelLogStream(InspIRCd *Instance, int loglevel, const std::string &chan) : LogStream(Instance, loglevel), channel(chan) - { - } - - virtual void OnLog(int loglevel, const std::string &type, const std::string &msg) - { - Channel *c = ServerInstance->FindChan(channel); - static bool Logging = false; - - if (loglevel < this->loglvl) - return; - - if (Logging) - return; - - if (c) - { - Logging = true; // this avoids (rare chance) loops with logging server IO on networks - char buf[MAXBUF]; - snprintf(buf, MAXBUF, "\2%s\2: %s", type.c_str(), msg.c_str()); - - c->WriteChannelWithServ(ServerInstance->Config->ServerName, "PRIVMSG %s :%s", c->name.c_str(), buf); - ServerInstance->PI->SendChannelPrivmsg(c, 0, buf); - Logging = false; - } - } -}; -#endif - class ModuleChanLog : public Module { private: @@ -149,3 +104,56 @@ class ModuleChanLog : public Module MODULE_INIT(ModuleChanLog) + + + + + + + + +/* + * This is for the "old" chanlog module which intercepted messages going to the logfile.. + * I don't consider it all that useful, and it's quite dangerous if setup incorrectly, so + * this is defined out but left intact in case someone wants to develop it further someday. + * + * -- w00t (aug 23rd, 2008) + */ +#define OLD_CHANLOG 0 + +#if OLD_CHANLOG +class ChannelLogStream : public LogStream +{ + private: + std::string channel; + + public: + ChannelLogStream(InspIRCd *Instance, int loglevel, const std::string &chan) : LogStream(Instance, loglevel), channel(chan) + { + } + + virtual void OnLog(int loglevel, const std::string &type, const std::string &msg) + { + Channel *c = ServerInstance->FindChan(channel); + static bool Logging = false; + + if (loglevel < this->loglvl) + return; + + if (Logging) + return; + + if (c) + { + Logging = true; // this avoids (rare chance) loops with logging server IO on networks + char buf[MAXBUF]; + snprintf(buf, MAXBUF, "\2%s\2: %s", type.c_str(), msg.c_str()); + + c->WriteChannelWithServ(ServerInstance->Config->ServerName, "PRIVMSG %s :%s", c->name.c_str(), buf); + ServerInstance->PI->SendChannelPrivmsg(c, 0, buf); + Logging = false; + } + } +}; +#endif + |