From fee9b303d079f031ff98c1a263e7786c1d695a1b Mon Sep 17 00:00:00 2001 From: imaginos Date: Sat, 23 Apr 2005 18:24:38 +0000 Subject: [PATCH] only work on chans where keepbuffer is true git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@169 726aef4b-f618-498e-8847-2d620e286838 --- modules/savebuff.cpp | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/modules/savebuff.cpp b/modules/savebuff.cpp index 07827d36..6edaa7f2 100644 --- a/modules/savebuff.cpp +++ b/modules/savebuff.cpp @@ -26,6 +26,9 @@ * better solution then plain text. * * $Log$ + * Revision 1.17 2005/04/23 18:24:38 imaginos + * only work on chans where keepbuffer is true + * * Revision 1.16 2005/04/23 08:10:34 prozacx * Changed vChans to a reference in OnNick and OnQuit (oops) * @@ -143,6 +146,9 @@ public: const vector& vChans = m_pUser->GetChans(); for( u_int a = 0; a < vChans.size(); a++ ) { + if ( !vChans[a]->KeepBuffer() ) + continue; + if ( !BootStrap( vChans[a] ) ) { m_bBootError = true; @@ -185,10 +191,10 @@ public: const vector& vChans = m_pUser->GetChans(); for( u_int a = 0; a < vChans.size(); a++ ) { + if ( !vChans[a]->KeepBuffer() ) + continue; + const vector & vBuffer = vChans[a]->GetBuffer(); - // TODO make this configureable - vChans[a]->SetKeepBuffer( true ); - vChans[a]->SetBufferCount( 500 ); if ( vBuffer.empty() ) { @@ -293,29 +299,46 @@ public: virtual void OnRawMode(const CNick& cOpNick, const CChan& cChannel, const string& sModes, const string& sArgs) { + if ( !cChannel.KeepBuffer() ) + return; + ((CChan &)cChannel).AddBuffer( SpoofChanMsg( cChannel.GetName(), cOpNick.GetNickMask() + " MODE " + sModes + " " + sArgs ) ); } virtual void OnQuit(const CNick& cNick, const string& sMessage, const vector& vChans) { for( u_int a = 0; a < vChans.size(); a++ ) + { + if ( !vChans[a]->KeepBuffer() ) + continue; vChans[a]->AddBuffer( SpoofChanMsg( vChans[a]->GetName(), cNick.GetNickMask() + " QUIT " + sMessage ) ); + } } virtual void OnNick(const CNick& cNick, const string& sNewNick, const vector& vChans) { for( u_int a = 0; a < vChans.size(); a++ ) + { + if ( !vChans[a]->KeepBuffer() ) + continue; vChans[a]->AddBuffer( SpoofChanMsg( vChans[a]->GetName(), cNick.GetNickMask() + " NICK " + sNewNick ) ); + } } virtual void OnKick(const CNick& cNick, const string& sOpNick, const CChan& cChannel, const string& sMessage) { + if ( !cChannel.KeepBuffer() ) + return; ((CChan &)cChannel).AddBuffer( SpoofChanMsg( cChannel.GetName(), sOpNick + " KICK " + cNick.GetNickMask() + " " + sMessage ) ); } virtual void OnJoin(const CNick& cNick, const CChan& cChannel) { + if ( !cChannel.KeepBuffer() ) + return; ((CChan &)cChannel).AddBuffer( SpoofChanMsg( cChannel.GetName(), cNick.GetNickMask() + " JOIN" ) ); } virtual void OnPart(const CNick& cNick, const CChan& cChannel) { + if ( !cChannel.KeepBuffer() ) + return; ((CChan &)cChannel).AddBuffer( SpoofChanMsg( cChannel.GetName(), cNick.GetNickMask() + " PART" ) ); }