20#include <znc/zncconfig.h>
33class CConnectQueueTimer;
34class CConfigWriteTimer;
67 bool bAllowMkDir =
true);
89 CUser* pSkipUser =
nullptr,
CClient* pSkipClient =
nullptr);
110 void AuthUser(std::shared_ptr<CAuthBase> AuthClass);
221 return AddTCPListener(uPort, sBindHost, sURIPrefix, bSSL, eAddr, eAccept, sError);
230 if (!sMessage.empty()) {
269 static CString FormatBindError();
271 CFile* InitPidFile();
277 void UnloadRemovedModules(
const MCString& msModules);
279 bool HandleUserDeletion();
283 bool CheckSslAndPemFile(
bool bSSL,
CString& sError);
EAddrType
Definition Socket.h:77
std::set< CString > SCString
Definition ZNCString.h:37
std::vector< CString > VCString
Definition ZNCString.h:38
Definition Translation.h:103
Definition FileUtils.h:30
Definition IRCNetwork.h:40
EAcceptType
Definition Listener.h:30
The base class for your own ZNC modules.
Definition Modules.h:420
Definition Modules.h:1532
String class that is used inside ZNC.
Definition ZNCString.h:50
CUser * FindUser(const CString &sUsername)
bool AddListener(unsigned short uPort, const CString &sBindHost, const CString &sURIPrefix, bool bSSL, EAddrType eAddr, CListener::EAcceptType eAccept, CString &sError)
Definition znc.h:218
unsigned int m_uiForceEncoding
Definition znc.h:325
void SetSkinName(const CString &s)
Definition znc.h:117
bool m_bProtectWebSessions
Definition znc.h:327
CTranslationDomainRefHolder m_Translation
Definition znc.h:330
void SetAuthOnlyViaModule(bool b)
Definition znc.h:128
const CString & GetConfigFile() const
Definition znc.h:155
CModule * FindModule(const CString &sModName, CUser *pUser)
unsigned int m_uiConnectPaused
Definition znc.h:324
unsigned int m_uDisabledSSLProtocols
Definition znc.h:318
void ClearMotd()
Definition znc.h:234
CString GetSSLProtocols() const
Definition znc.h:174
CString m_sSkinName
Definition znc.h:301
bool AddUnixListener(const CString &sPath, const CString &sURIPrefix, bool bSSL, CListener::EAcceptType eAccept, CString &sError)
void Broadcast(const CString &sMessage, bool bAdminOnly=false, CUser *pSkipUser=nullptr, CClient *pSkipClient=nullptr)
TrafficStatsMap GetNetworkTrafficStats(const CString &sUsername, TrafficStatsPair &Total)
const VCString & GetBindHosts() const
Definition znc.h:158
void SetAnonIPLimit(unsigned int i)
Definition znc.h:122
CString GetKeyLocation() const
unsigned long long BytesWritten() const
Definition znc.h:93
std::vector< CListener * > m_vpListeners
Definition znc.h:292
CListener * FindListener(u_short uPort, const CString &BindHost, EAddrType eAddr)
CListener * FindUnixListener(const CString &sPath)
const CString & GetStatusPrefix() const
Definition znc.h:145
CString m_sStatusPrefix
Definition znc.h:302
void AddServerThrottle(CString sName)
Definition znc.h:238
CString GetSSLCertFile() const
Definition znc.h:178
void SetProtectWebSessions(bool b)
Definition znc.h:126
CString m_sZNCPath
Definition znc.h:298
void AddNetworkToQueue(CIRCNetwork *pNetwork)
void ResumeConnectQueue()
TrafficStatsMap GetTrafficStats(TrafficStatsPair &Users, TrafficStatsPair &ZNC, TrafficStatsPair &Total)
CModules & GetModules()
Definition znc.h:143
void LeakConnectQueueTimer(CConnectQueueTimer *pTimer)
CString GetSkinName() const
Definition znc.h:144
unsigned int m_uiAnonIPLimit
Definition znc.h:316
void AuthUser(std::shared_ptr< CAuthBase > AuthClass)
enum ConfigState GetConfigState()
Definition znc.h:137
CSockManager m_Manager
Definition znc.h:295
bool AllowConnectionFrom(const CString &sIP) const
CString FixupEncoding(const CString &sEncoding) const
CString GetSSLCiphers() const
Definition znc.h:173
CConnectQueueTimer * m_pConnectQueueTimer
Definition znc.h:323
unsigned int m_uiMaxBufferSize
Definition znc.h:317
bool AddListener(CListener *)
static CString GetCompileOptionsString()
void SetServerThrottle(unsigned int i)
Definition znc.h:123
TCacheMap< CString > m_sConnectThrottle
Definition znc.h:326
bool WritePidFile(int iPid)
bool ParseConfig(const CString &sConfig, CString &sError)
void SetSSLCiphers(const CString &sCiphers)
Definition znc.h:130
time_t m_TimeStarted
Definition znc.h:287
unsigned int m_uiConfigWriteDelay
Definition znc.h:331
const CString & GetZNCPath() const
CString GetModPath() const
unsigned int GetServerThrottle() const
Definition znc.h:166
unsigned int m_uiConnectDelay
Definition znc.h:315
CZNC & operator=(const CZNC &)=delete
static CString GetTag(bool bIncludeVersion=true, bool bHTML=false)
CModule * FindModule(const CString &sModName, const CString &sUsername)
bool GetAuthOnlyViaModule() const
Definition znc.h:172
std::map< CString, TrafficStatsPair > TrafficStatsMap
Definition znc.h:97
bool RehashConfig(CString &sError)
bool AddTrustedProxy(const CString &sHost)
void AddMotd(const CString &sMessage)
Definition znc.h:229
unsigned int GetMaxBufferSize() const
Definition znc.h:164
bool m_bHideVersion
Definition znc.h:328
time_t TimeStarted() const
Definition znc.h:163
bool AddBindHost(const CString &sHost)
Definition znc.h:80
const CString & GetCurPath() const
CString m_sSSLProtocols
Definition znc.h:308
void SetConnectDelay(unsigned int i)
void DisableConnectQueue()
bool AddUser(CUser *pUser, CString &sErrorRet, bool bStartup=false)
unsigned int GetConfigWriteDelay() const
Definition znc.h:180
CString m_sSSLCiphers
Definition znc.h:307
std::list< CIRCNetwork * > & GetConnectionQueue()
Definition znc.h:247
void SetConfigWriteDelay(unsigned int i)
Definition znc.h:133
bool RemTrustedProxy(const CString &sHost)
void ClearBindHosts()
Definition znc.h:78
VCString m_vsMotd
Definition znc.h:311
std::mutex m_mutexConfigState
Definition znc.h:290
CFile * m_pLockFile
Definition znc.h:314
CZNC(const CZNC &)=delete
SCString m_ssServerCapBlacklist
Definition znc.h:313
VCString m_vsTrustedProxies
Definition znc.h:310
unsigned int GetConnectDelay() const
Definition znc.h:169
CString GetUptime() const
void SetStatusPrefix(const CString &s)
Definition znc.h:118
CString m_sSSLDHParamFile
Definition znc.h:306
VCString m_vsBindHosts
Definition znc.h:309
ConfigState
Definition znc.h:46
@ ECONFIG_NEED_QUIT
Definition znc.h:52
@ ECONFIG_NOTHING
Definition znc.h:47
@ ECONFIG_NEED_REHASH
Definition znc.h:48
@ ECONFIG_NEED_VERBOSE_WRITE
Definition znc.h:50
@ ECONFIG_NEED_WRITE
Definition znc.h:49
@ ECONFIG_DELAYED_WRITE
Definition znc.h:51
std::pair< unsigned long long, unsigned long long > TrafficStatsPair
Definition znc.h:96
bool GetProtectWebSessions() const
Definition znc.h:170
CString GetDHParamLocation() const
void SetSSLCertFile(const CString &sFile)
Definition znc.h:132
bool DelListener(CListener *)
const SCString & GetServerCapBlacklist() const
Definition znc.h:87
static void CreateInstance()
void InitDirs(const CString &sArgvPath, const CString &sDataDir)
const std::map< CString, CUser * > & GetUserMap() const
Definition znc.h:202
static CString GetVersion()
static void DumpConfig(const CConfig *Config)
CString GetConfPath(bool bAllowMkDir=true) const
void EnableConnectQueue()
std::map< CString, CUser * > m_msUsers
Definition znc.h:293
void AddBytesRead(unsigned long long u)
Definition znc.h:90
Csock::EDisableProtocol GetDisabledSSLProtocols() const
Definition znc.h:175
void SetMaxBufferSize(unsigned int i)
Definition znc.h:121
const CSockManager & GetManager() const
Definition znc.h:142
CModules * m_pModules
Definition znc.h:319
unsigned long long m_uBytesRead
Definition znc.h:320
SCString m_ssClientCapBlacklist
Definition znc.h:312
bool WriteNewConfig(const CString &sConfigFile)
bool DeleteUser(const CString &sUsername)
CString m_sSSLCertFile
Definition znc.h:304
CSockManager & GetManager()
Definition znc.h:141
CString m_sSSLKeyFile
Definition znc.h:305
std::map< CString, CUser * > m_msDelUsers
Definition znc.h:294
void DisableConfigTimer()
CString GetPemLocation() const
CString m_sConfigFile
Definition znc.h:300
CString m_sCurPath
Definition znc.h:297
bool RemBindHost(const CString &sHost)
Definition znc.h:82
bool GetServerThrottle(CString sName)
Definition znc.h:241
static void DestroyInstance()
std::list< CIRCNetwork * > m_lpConnectQueue
Definition znc.h:322
bool GetHideVersion() const
Definition znc.h:171
void SetHideVersion(bool b)
Definition znc.h:127
CConfigWriteTimer * m_pConfigTimer
Definition znc.h:332
bool SetSSLProtocols(const CString &sProtocols)
void AddBytesWritten(unsigned long long u)
Definition znc.h:91
unsigned long long BytesRead() const
Definition znc.h:92
bool IsHostAllowed(const CString &sHostMask) const
bool m_bAuthOnlyViaModule
Definition znc.h:329
void BackupConfigOnce(const CString &sSuffix)
const VCString & GetMotd() const
Definition znc.h:235
CString m_sPidFile
Definition znc.h:303
void SetMotd(const CString &sMessage)
Definition znc.h:225
bool IsForcingEncoding() const
void SetConfigState(enum ConfigState e)
Definition znc.h:113
const VCString & GetTrustedProxies() const
Definition znc.h:159
const SCString & GetClientCapBlacklist() const
Definition znc.h:86
static VCString GetAvailableSSLProtocols()
bool UpdateModule(const CString &sModule)
Reload a module everywhere.
const std::vector< CListener * > & GetListeners() const
Definition znc.h:160
const CString & GetHomePath() const
CString ExpandConfigPath(const CString &sConfigFile, bool bAllowMkDir=true)
CString GetUserPath() const
unsigned int GetAnonIPLimit() const
Definition znc.h:165
enum ConfigState m_eConfigState
Definition znc.h:289
bool AddTCPListener(unsigned short uPort, const CString &sBindHost, const CString &sURIPrefix, bool bSSL, EAddrType eAddr, CListener::EAcceptType eAccept, CString &sError)
void ClearTrustedProxies()
unsigned long long m_uBytesWritten
Definition znc.h:321
EDisableProtocol
Definition Csocket.h:627
A dictionary for strings.
Definition ZNCString.h:577
Insert an object with a time-to-live and check later if it still exists.
Definition Utils.h:292
void AddItem(const K &Item)
This function adds an item to the cache using the default time-to-live value.
Definition Utils.h:302
unsigned int GetTTL() const
Definition Utils.h:400
void SetTTL(unsigned int u)
Definition Utils.h:397
V * GetItem(const K &Item)
Performs a Cleanup() and returns a pointer to the object, or nullptr.
Definition Utils.h:350
Definition Translation.h:62