diff --git a/include/znc/Client.h b/include/znc/Client.h index e8ae0bb2..bb70bdd1 100644 --- a/include/znc/Client.h +++ b/include/znc/Client.h @@ -89,26 +89,33 @@ protected: class CClient : public CIRCSocket { public: - CClient() : CIRCSocket() { - m_pUser = nullptr; - m_pNetwork = nullptr; - m_bGotPass = false; - m_bGotNick = false; - m_bGotUser = false; - m_bInCap = false; - m_bNamesx = false; - m_bUHNames = false; - m_bAway = false; - m_bServerTime = false; - m_bBatch = false; - m_bSelfMessage = false; - m_bPlaybackActive = false; + CClient() + : CIRCSocket(), + m_bGotPass(false), + m_bGotNick(false), + m_bGotUser(false), + m_bInCap(false), + m_bNamesx(false), + m_bUHNames(false), + m_bAway(false), + m_bServerTime(false), + m_bBatch(false), + m_bSelfMessage(false), + m_bPlaybackActive(false), + m_pUser(nullptr), + m_pNetwork(nullptr), + m_sNick("unknown-nick"), + m_sPass(""), + m_sUser(""), + m_sNetwork(""), + m_sIdentifier(""), + m_spAuth(), + m_ssAcceptedCaps() + { EnableReadLine(); // RFC says a line can have 512 chars max, but we are // a little more gentle ;) SetMaxBufferThreshold(1024); - - SetNick("unknown-nick"); } virtual ~CClient(); diff --git a/src/Chan.cpp b/src/Chan.cpp index d419f3b8..4313f36c 100644 --- a/src/Chan.cpp +++ b/src/Chan.cpp @@ -25,26 +25,37 @@ using std::set; using std::vector; using std::map; -CChan::CChan(const CString& sName, CIRCNetwork* pNetwork, bool bInConfig, CConfig *pConfig) { - m_sName = sName.Token(0); - m_sKey = sName.Token(1); - m_pNetwork = pNetwork; - +CChan::CChan(const CString& sName, CIRCNetwork* pNetwork, bool bInConfig, CConfig *pConfig) + : m_bDetached(false), + m_bIsOn(false), + m_bAutoClearChanBuffer(pNetwork->GetUser()->AutoClearChanBuffer()), + m_bInConfig(bInConfig), + m_bDisabled(false), + m_bHasBufferCountSet(false), + m_bHasAutoClearChanBufferSet(false), + m_bStripControls(false), + m_bHasStripControlsSet(false), + m_sName(sName.Token(0)), + m_sKey(sName.Token(1)), + m_sTopic(""), + m_sTopicOwner(""), + m_ulTopicDate(0), + m_ulCreationDate(0), + m_pNetwork(pNetwork), + m_Nick(), + m_uJoinTries(0), + m_sDefaultModes(""), + m_msNicks(), + m_Buffer(), + m_bModeKnown(false), + m_musModes() +{ if (!m_pNetwork->IsChan(m_sName)) { m_sName = "#" + m_sName; } - m_bInConfig = bInConfig; m_Nick.SetNetwork(m_pNetwork); - m_bDetached = false; - m_bDisabled = false; - m_bStripControls = false; - m_bHasBufferCountSet = false; - m_bHasAutoClearChanBufferSet = false; - m_bHasStripControlsSet = false; m_Buffer.SetLineCount(m_pNetwork->GetUser()->GetBufferCount(), true); - m_bAutoClearChanBuffer = m_pNetwork->GetUser()->AutoClearChanBuffer(); - Reset(); if (pConfig) { CString sValue; diff --git a/src/HTTPSock.cpp b/src/HTTPSock.cpp index 80c12beb..43558ecf 100644 --- a/src/HTTPSock.cpp +++ b/src/HTTPSock.cpp @@ -28,23 +28,39 @@ using std::set; #define MAX_POST_SIZE 1024 * 1024 -CHTTPSock::CHTTPSock(CModule *pMod, const CString& sURIPrefix) : CSocket(pMod), m_sURIPrefix(sURIPrefix) { +CHTTPSock::CHTTPSock(CModule *pMod, const CString& sURIPrefix) : CHTTPSock(pMod, sURIPrefix, "", 0) { Init(); } -CHTTPSock::CHTTPSock(CModule *pMod, const CString& sURIPrefix, const CString& sHostname, unsigned short uPort, int iTimeout) : CSocket(pMod, sHostname, uPort, iTimeout), m_sURIPrefix(sURIPrefix) { +CHTTPSock::CHTTPSock(CModule *pMod, const CString& sURIPrefix, const CString& sHostname, unsigned short uPort, int iTimeout) + : CSocket(pMod, sHostname, uPort, iTimeout), + m_bSentHeader(false), + m_bGotHeader(false), + m_bLoggedIn(false), + m_bPost(false), + m_bDone(false), + m_uPostLen(0), + m_sPostData(""), + m_sURI(""), + m_sUser(""), + m_sPass(""), + m_sContentType(""), + m_sDocRoot(""), + m_sForwardedIP(""), + m_msvsPOSTParams(), + m_msvsGETParams(), + m_msHeaders(), + m_bHTTP10Client(false), + m_sIfNoneMatch(""), + m_bAcceptGzip(false), + m_msRequestCookies(), + m_msResponseCookies(), + m_sURIPrefix(sURIPrefix) +{ Init(); } void CHTTPSock::Init() { - m_bSentHeader = false; - m_bGotHeader = false; - m_bLoggedIn = false; - m_bPost = false; - m_bDone = false; - m_bHTTP10Client = false; - m_bAcceptGzip = false; - m_uPostLen = 0; EnableReadLine(); SetMaxBufferThreshold(10240); } diff --git a/src/IRCSock.cpp b/src/IRCSock.cpp index 88708f7e..f33bbf1b 100644 --- a/src/IRCSock.cpp +++ b/src/IRCSock.cpp @@ -53,26 +53,37 @@ bool CIRCSock::IsFloodProtected(double fRate) { return fRate > FLOOD_MINIMAL_RATE; } -CIRCSock::CIRCSock(CIRCNetwork* pNetwork) : CIRCSocket() { - m_pNetwork = pNetwork; - m_bAuthed = false; - m_bNamesx = false; - m_bUHNames = false; - m_fFloodRate = m_pNetwork->GetFloodRate(); - m_uFloodBurst = m_pNetwork->GetFloodBurst(); - m_bFloodProtection = IsFloodProtected(m_fFloodRate); - m_iSendsAllowed = m_uFloodBurst; +CIRCSock::CIRCSock(CIRCNetwork* pNetwork) + : CIRCSocket(), + m_bAuthed(false), + m_bNamesx(false), + m_bUHNames(false), + m_sPerms("*!@%+"), + m_sPermModes("qaohv"), + m_scUserModes(), + m_mueChanModes(), + m_pNetwork(pNetwork), + m_Nick(), + m_sPass(""), + m_msChans(), + m_uMaxNickLen(9), + m_uCapPaused(0), + m_ssAcceptedCaps(), + m_ssPendingCaps(), + m_lastCTCP(0), + m_uNumCTCP(0), + m_mISupport(), + m_vsSendQueue(), + m_iSendsAllowed(pNetwork->GetFloodBurst()), + m_uFloodBurst(pNetwork->GetFloodBurst()), + m_fFloodRate(pNetwork->GetFloodRate()), + m_bFloodProtection(IsFloodProtected(pNetwork->GetFloodRate())) +{ EnableReadLine(); m_Nick.SetIdent(m_pNetwork->GetIdent()); m_Nick.SetHost(m_pNetwork->GetBindHost()); SetEncoding(m_pNetwork->GetEncoding()); - m_uMaxNickLen = 9; - m_uCapPaused = 0; - m_lastCTCP = 0; - m_uNumCTCP = 0; - m_sPerms = "*!@%+"; - m_sPermModes = "qaohv"; m_mueChanModes['b'] = ListArg; m_mueChanModes['e'] = ListArg; m_mueChanModes['I'] = ListArg; diff --git a/src/Socket.cpp b/src/Socket.cpp index 067668cc..6bcf1c1a 100644 --- a/src/Socket.cpp +++ b/src/Socket.cpp @@ -39,7 +39,7 @@ static CString ZNC_DefaultCipher() { } #endif -CZNCSock::CZNCSock(int timeout) : Csock(timeout) { +CZNCSock::CZNCSock(int timeout) : Csock(timeout), m_HostToVerifySSL(""), m_ssTrustedFingerprints(), m_ssCertVerificationErrors() { #ifdef HAVE_LIBSSL DisableSSLCompression(); FollowSSLCipherServerPreference(); @@ -52,7 +52,7 @@ CZNCSock::CZNCSock(int timeout) : Csock(timeout) { #endif } -CZNCSock::CZNCSock(const CString& sHost, u_short port, int timeout) : Csock(sHost, port, timeout) { +CZNCSock::CZNCSock(const CString& sHost, u_short port, int timeout) : Csock(sHost, port, timeout), m_HostToVerifySSL(""), m_ssTrustedFingerprints(), m_ssCertVerificationErrors() { #ifdef HAVE_LIBSSL DisableSSLCompression(); FollowSSLCipherServerPreference(); @@ -398,15 +398,13 @@ void CSockManager::FinishConnect(const CString& sHostname, u_short iPort, const /////////////////// CSocket /////////////////// -CSocket::CSocket(CModule* pModule) : CZNCSock() { - m_pModule = pModule; +CSocket::CSocket(CModule* pModule) : CZNCSock(), m_pModule(pModule) { if (m_pModule) m_pModule->AddSocket(this); EnableReadLine(); SetMaxBufferThreshold(10240); } -CSocket::CSocket(CModule* pModule, const CString& sHostname, unsigned short uPort, int iTimeout) : CZNCSock(sHostname, uPort, iTimeout) { - m_pModule = pModule; +CSocket::CSocket(CModule* pModule, const CString& sHostname, unsigned short uPort, int iTimeout) : CZNCSock(sHostname, uPort, iTimeout), m_pModule(pModule) { if (m_pModule) m_pModule->AddSocket(this); EnableReadLine(); SetMaxBufferThreshold(10240);