From b68fbc64a247256cbc873394239eb21aca9e7974 Mon Sep 17 00:00:00 2001 From: Uli Schlachter Date: Thu, 12 Jan 2017 10:31:32 +0100 Subject: [PATCH] Move listener config writing into CListener Signed-off-by: Uli Schlachter --- include/znc/Listener.h | 2 ++ src/Listener.cpp | 25 +++++++++++++++++++++++++ src/znc.cpp | 23 +---------------------- 3 files changed, 28 insertions(+), 22 deletions(-) diff --git a/include/znc/Listener.h b/include/znc/Listener.h index e8d8111a..a6b05353 100644 --- a/include/znc/Listener.h +++ b/include/znc/Listener.h @@ -22,6 +22,7 @@ // Forward Declarations class CRealListener; +class CConfig; // !Forward Declarations class CListener { @@ -60,6 +61,7 @@ class CListener { bool Listen(); void ResetRealListener(); + CConfig ToConfig() const; private: protected: diff --git a/src/Listener.cpp b/src/Listener.cpp index 93633b7e..50023018 100644 --- a/src/Listener.cpp +++ b/src/Listener.cpp @@ -15,6 +15,7 @@ */ #include +#include #include CListener::~CListener() { @@ -48,6 +49,30 @@ bool CListener::Listen() { m_pListener, 0, m_eAddr); } +CConfig CListener::ToConfig() const { + CConfig listenerConfig; + + listenerConfig.AddKeyValuePair("Host", GetBindHost()); + listenerConfig.AddKeyValuePair("URIPrefix", GetURIPrefix() + "/"); + listenerConfig.AddKeyValuePair("Port", CString(GetPort())); + + listenerConfig.AddKeyValuePair( + "IPv4", CString(GetAddrType() != ADDR_IPV6ONLY)); + listenerConfig.AddKeyValuePair( + "IPv6", CString(GetAddrType() != ADDR_IPV4ONLY)); + + listenerConfig.AddKeyValuePair("SSL", CString(IsSSL())); + + listenerConfig.AddKeyValuePair( + "AllowIRC", + CString(GetAcceptType() != CListener::ACCEPT_HTTP)); + listenerConfig.AddKeyValuePair( + "AllowWeb", + CString(GetAcceptType() != CListener::ACCEPT_IRC)); + + return listenerConfig; +} + void CListener::ResetRealListener() { m_pListener = nullptr; } CRealListener::~CRealListener() { m_Listener.ResetRealListener(); } diff --git a/src/znc.cpp b/src/znc.cpp index f58800b8..810f065d 100644 --- a/src/znc.cpp +++ b/src/znc.cpp @@ -497,29 +497,8 @@ bool CZNC::WriteConfig() { unsigned int l = 0; for (CListener* pListener : m_vpListeners) { - CConfig listenerConfig; - - listenerConfig.AddKeyValuePair("Host", pListener->GetBindHost()); - listenerConfig.AddKeyValuePair("URIPrefix", - pListener->GetURIPrefix() + "/"); - listenerConfig.AddKeyValuePair("Port", CString(pListener->GetPort())); - - listenerConfig.AddKeyValuePair( - "IPv4", CString(pListener->GetAddrType() != ADDR_IPV6ONLY)); - listenerConfig.AddKeyValuePair( - "IPv6", CString(pListener->GetAddrType() != ADDR_IPV4ONLY)); - - listenerConfig.AddKeyValuePair("SSL", CString(pListener->IsSSL())); - - listenerConfig.AddKeyValuePair( - "AllowIRC", - CString(pListener->GetAcceptType() != CListener::ACCEPT_HTTP)); - listenerConfig.AddKeyValuePair( - "AllowWeb", - CString(pListener->GetAcceptType() != CListener::ACCEPT_IRC)); - config.AddSubConfig("Listener", "listener" + CString(l++), - listenerConfig); + pListener->ToConfig()); } config.AddKeyValuePair("ConnectDelay", CString(m_uiConnectDelay));