27
27
CSockManager() : TSocketManager<Csock>() {}
28
28
virtual ~CSockManager() {}
30
bool ListenHost(u_short iPort, const CString& sSockName, const CString& sBindHost, int isSSL = false, int iMaxConns = SOMAXCONN, Csock *pcSock = NULL, u_int iTimeout = 0, bool bIsIPv6 = false) {
30
bool ListenHost(u_short iPort, const CString& sSockName, const CString& sBindHost, bool bSSL = false, int iMaxConns = SOMAXCONN, Csock *pcSock = NULL, u_int iTimeout = 0, bool bIsIPv6 = false) {
31
31
CSListener L(iPort, sBindHost);
33
33
L.SetSockName(sSockName);
35
35
L.SetTimeout(iTimeout);
36
36
L.SetMaxConns(iMaxConns);
44
44
return Listen(L, pcSock);
47
bool ListenAll(u_short iPort, const CString& sSockName, int isSSL = false, int iMaxConns = SOMAXCONN, Csock *pcSock = NULL, u_int iTimeout = 0, bool bIsIPv6 = false) {
48
return ListenHost(iPort, sSockName, "", isSSL, iMaxConns, pcSock, iTimeout, bIsIPv6);
47
bool ListenAll(u_short iPort, const CString& sSockName, bool bSSL = false, int iMaxConns = SOMAXCONN, Csock *pcSock = NULL, u_int iTimeout = 0, bool bIsIPv6 = false) {
48
return ListenHost(iPort, sSockName, "", bSSL, iMaxConns, pcSock, iTimeout, bIsIPv6);
51
u_short ListenRand(const CString& sSockName, const CString& sBindHost, int isSSL = false, int iMaxConns = SOMAXCONN, Csock *pcSock = NULL, u_int iTimeout = 0, bool bIsIPv6 = false) {
51
u_short ListenRand(const CString& sSockName, const CString& sBindHost, bool bSSL = false, int iMaxConns = SOMAXCONN, Csock *pcSock = NULL, u_int iTimeout = 0, bool bIsIPv6 = false) {
52
52
unsigned short uPort = 0;
53
53
CSListener L(0, sBindHost);
55
55
L.SetSockName(sSockName);
57
57
L.SetTimeout(iTimeout);
58
58
L.SetMaxConns(iMaxConns);
71
u_short ListenAllRand(const CString& sSockName, int isSSL = false, int iMaxConns = SOMAXCONN, Csock *pcSock = NULL, u_int iTimeout = 0, bool bIsIPv6 = false) {
72
return(ListenRand(sSockName, "", isSSL, iMaxConns, pcSock, iTimeout, bIsIPv6));
71
u_short ListenAllRand(const CString& sSockName, bool bSSL = false, int iMaxConns = SOMAXCONN, Csock *pcSock = NULL, u_int iTimeout = 0, bool bIsIPv6 = false) {
72
return(ListenRand(sSockName, "", bSSL, iMaxConns, pcSock, iTimeout, bIsIPv6));
75
bool Connect(const CString& sHostname, u_short iPort , const CString& sSockName, int iTimeout = 60, bool isSSL = false, const CString& sBindHost = "", Csock *pcSock = NULL) {
75
bool Connect(const CString& sHostname, u_short iPort , const CString& sSockName, int iTimeout = 60, bool bSSL = false, const CString& sBindHost = "", Csock *pcSock = NULL) {
76
76
CSConnection C(sHostname, iPort, iTimeout);
78
78
C.SetSockName(sSockName);
80
80
C.SetBindHost(sBindHost);
82
82
return TSocketManager<Csock>::Connect(C, pcSock);
104
104
void InitDirs(const CString& sArgvPath, const CString& sDataDir);
106
106
CString ExpandConfigPath(const CString& sConfigFile);
107
bool WriteNewConfig(CString& sConfigFile);
107
bool WriteNewConfig(const CString& sConfigFile);
108
108
bool WriteConfig();
109
109
bool ParseConfig(const CString& sConfig);
110
110
bool RehashConfig(CString& sError);
153
153
CString GetModPath() const;
154
154
CString GetPemLocation() const { return GetZNCPath() + "/znc.pem"; }
155
155
const CString& GetConfigFile() const { return m_sConfigFile; }
156
bool WritePemFile(bool bEncPem = false);
157
157
const CString& GetISpoofFile() const { return m_sISpoofFile; }
158
158
const CString& GetISpoofFormat() const { return m_sISpoofFormat; }
159
159
const VCString& GetVHosts() const { return m_vsVHosts; }
273
273
bool IsIPV6() const { return m_bIPV6; }
274
274
unsigned short GetPort() const { return m_uPort; }
275
275
const CString& GetBindHost() const { return m_sBindHost; }
276
CRealListener* GetRealListener() const { return m_pListener; }