diff --git a/DCCBounce.cpp b/DCCBounce.cpp index fbed94ba..76fd897d 100644 --- a/DCCBounce.cpp +++ b/DCCBounce.cpp @@ -15,6 +15,17 @@ const unsigned int CDCCBounce::m_uiMaxDCCBuffer = 10 * 1024; // If less than this is in the buffer, the receiving side continues const unsigned int CDCCBounce::m_uiMinDCCBuffer = 2 * 1024; +CDCCBounce::~CDCCBounce() { + if (m_pPeer) { + m_pPeer->Shutdown(); + m_pPeer = NULL; + } + if (m_pUser) { + m_pUser->AddBytesRead(GetBytesRead()); + m_pUser->AddBytesWritten(GetBytesWritten()); + } +} + void CDCCBounce::ReadLine(const CString& sData) { CString sLine = sData; diff --git a/DCCBounce.h b/DCCBounce.h index b2645cd3..773aa795 100644 --- a/DCCBounce.h +++ b/DCCBounce.h @@ -47,12 +47,7 @@ public: EnableReadLine(); } } - virtual ~CDCCBounce() { - if (m_pPeer) { - m_pPeer->Shutdown(); - m_pPeer = NULL; - } - } + virtual ~CDCCBounce(); static unsigned short DCCRequest(const CString& sNick, unsigned long uLongIP, unsigned short uPort, const CString& sFileName, bool bIsChat, CUser* pUser, const CString& sLocalIP, const CString& sRemoteIP); diff --git a/DCCSock.cpp b/DCCSock.cpp index b008a036..7a9fefb9 100644 --- a/DCCSock.cpp +++ b/DCCSock.cpp @@ -9,6 +9,17 @@ #include "DCCSock.h" #include "User.h" +CDCCSock::~CDCCSock() { + if ((m_pFile) && (!m_bNoDelFile)) { + m_pFile->Close(); + delete m_pFile; + } + if (m_pUser) { + m_pUser->AddBytesRead(GetBytesRead()); + m_pUser->AddBytesWritten(GetBytesWritten()); + } +} + void CDCCSock::ReadData(const char* data, int len) { if (!m_pFile) { DEBUG_ONLY(cout << "File not open! closing get." << endl); diff --git a/DCCSock.h b/DCCSock.h index 72b930ca..e9e7e62c 100644 --- a/DCCSock.h +++ b/DCCSock.h @@ -53,12 +53,7 @@ public: m_bNoDelFile = false; } */ - virtual ~CDCCSock() { - if ((m_pFile) && (!m_bNoDelFile)) { - m_pFile->Close(); - delete m_pFile; - } - } + virtual ~CDCCSock(); virtual void ReadData(const char* data, int len); virtual void ConnectionRefused(); diff --git a/modules/schat.cpp b/modules/schat.cpp index eebda554..c8bc63d9 100644 --- a/modules/schat.cpp +++ b/modules/schat.cpp @@ -57,6 +57,8 @@ public: EnableReadLine(); } + ~CSChatSock(); + virtual Csock *GetSockObj(const CS_STRING & sHostname, u_short iPort) { CSChatSock *p = new CSChatSock(sHostname, iPort); @@ -457,6 +459,12 @@ private: //////////////////// methods //////////////// +CSChatSock::~CSChatSock() +{ + m_pModule->GetUser()->AddBytesRead(GetBytesRead()); + m_pModule->GetUser()->AddBytesWritten(GetBytesWritten()); +} + void CSChatSock::ReadLine(const CS_STRING & sLine) { if (m_pModule) diff --git a/modules/webadmin.cpp b/modules/webadmin.cpp index c13c9cc9..edd2eb85 100644 --- a/modules/webadmin.cpp +++ b/modules/webadmin.cpp @@ -335,6 +335,9 @@ CWebAdminSock::~CWebAdminSock() { CWebAdminAuth* pAuth = (CWebAdminAuth*) &(*m_spAuth); pAuth->SetWebAdminSock(NULL); } + + CZNC::Get().AddBytesRead(GetBytesRead()); + CZNC::Get().AddBytesWritten(GetBytesWritten()); } bool CWebAdminSock::OnPageRequest(const CString& sURI, CString& sPageRet) {