mirror of https://github.com/kiwix/libkiwix.git
Add method to change MHD_OPTION_PER_IP_CONNECTION_LIMIT
Adds new method setIpConnectionLimit() to server. Default is 0 (infinite)
This commit is contained in:
parent
ce24b1fa5f
commit
261adf0ef9
|
@ -54,6 +54,7 @@ namespace kiwix
|
||||||
void setAddress(const std::string& addr) { m_addr = addr; }
|
void setAddress(const std::string& addr) { m_addr = addr; }
|
||||||
void setPort(int port) { m_port = port; }
|
void setPort(int port) { m_port = port; }
|
||||||
void setNbThreads(int threads) { m_nbThreads = threads; }
|
void setNbThreads(int threads) { m_nbThreads = threads; }
|
||||||
|
void setIpConnectionLimit(int limit) { m_ipConnectionLimit = limit; }
|
||||||
void setVerbose(bool verbose) { m_verbose = verbose; }
|
void setVerbose(bool verbose) { m_verbose = verbose; }
|
||||||
void setIndexTemplateString(const std::string& indexTemplateString) { m_indexTemplateString = indexTemplateString; }
|
void setIndexTemplateString(const std::string& indexTemplateString) { m_indexTemplateString = indexTemplateString; }
|
||||||
void setTaskbar(bool withTaskbar, bool withLibraryButton)
|
void setTaskbar(bool withTaskbar, bool withLibraryButton)
|
||||||
|
@ -75,6 +76,7 @@ namespace kiwix
|
||||||
bool m_withTaskbar = true;
|
bool m_withTaskbar = true;
|
||||||
bool m_withLibraryButton = true;
|
bool m_withLibraryButton = true;
|
||||||
bool m_blockExternalLinks = false;
|
bool m_blockExternalLinks = false;
|
||||||
|
int m_ipConnectionLimit = 0;
|
||||||
std::unique_ptr<InternalServer> mp_server;
|
std::unique_ptr<InternalServer> mp_server;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,7 +49,8 @@ bool Server::start() {
|
||||||
m_withTaskbar,
|
m_withTaskbar,
|
||||||
m_withLibraryButton,
|
m_withLibraryButton,
|
||||||
m_blockExternalLinks,
|
m_blockExternalLinks,
|
||||||
m_indexTemplateString));
|
m_indexTemplateString,
|
||||||
|
m_ipConnectionLimit));
|
||||||
return mp_server->start();
|
return mp_server->start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -120,7 +120,8 @@ InternalServer::InternalServer(Library* library,
|
||||||
bool withTaskbar,
|
bool withTaskbar,
|
||||||
bool withLibraryButton,
|
bool withLibraryButton,
|
||||||
bool blockExternalLinks,
|
bool blockExternalLinks,
|
||||||
std::string indexTemplateString) :
|
std::string indexTemplateString,
|
||||||
|
int ipConnectionLimit) :
|
||||||
m_addr(addr),
|
m_addr(addr),
|
||||||
m_port(port),
|
m_port(port),
|
||||||
m_root(normalizeRootUrl(root)),
|
m_root(normalizeRootUrl(root)),
|
||||||
|
@ -130,6 +131,7 @@ InternalServer::InternalServer(Library* library,
|
||||||
m_withLibraryButton(withLibraryButton),
|
m_withLibraryButton(withLibraryButton),
|
||||||
m_blockExternalLinks(blockExternalLinks),
|
m_blockExternalLinks(blockExternalLinks),
|
||||||
m_indexTemplateString(indexTemplateString.empty() ? RESOURCE::templates::index_html : indexTemplateString),
|
m_indexTemplateString(indexTemplateString.empty() ? RESOURCE::templates::index_html : indexTemplateString),
|
||||||
|
m_ipConnectionLimit(ipConnectionLimit),
|
||||||
mp_daemon(nullptr),
|
mp_daemon(nullptr),
|
||||||
mp_library(library),
|
mp_library(library),
|
||||||
mp_nameMapper(nameMapper ? nameMapper : &defaultNameMapper)
|
mp_nameMapper(nameMapper ? nameMapper : &defaultNameMapper)
|
||||||
|
@ -168,6 +170,7 @@ bool InternalServer::start() {
|
||||||
this,
|
this,
|
||||||
MHD_OPTION_SOCK_ADDR, &sockAddr,
|
MHD_OPTION_SOCK_ADDR, &sockAddr,
|
||||||
MHD_OPTION_THREAD_POOL_SIZE, m_nbThreads,
|
MHD_OPTION_THREAD_POOL_SIZE, m_nbThreads,
|
||||||
|
MHD_OPTION_PER_IP_CONNECTION_LIMIT, m_ipConnectionLimit,
|
||||||
MHD_OPTION_END);
|
MHD_OPTION_END);
|
||||||
if (mp_daemon == nullptr) {
|
if (mp_daemon == nullptr) {
|
||||||
std::cerr << "Unable to instantiate the HTTP daemon. The port " << m_port
|
std::cerr << "Unable to instantiate the HTTP daemon. The port " << m_port
|
||||||
|
|
|
@ -55,7 +55,8 @@ class InternalServer {
|
||||||
bool withTaskbar,
|
bool withTaskbar,
|
||||||
bool withLibraryButton,
|
bool withLibraryButton,
|
||||||
bool blockExternalLinks,
|
bool blockExternalLinks,
|
||||||
std::string indexTemplateString);
|
std::string indexTemplateString,
|
||||||
|
int ipConnectionLimit);
|
||||||
virtual ~InternalServer() = default;
|
virtual ~InternalServer() = default;
|
||||||
|
|
||||||
MHD_Result handlerCallback(struct MHD_Connection* connection,
|
MHD_Result handlerCallback(struct MHD_Connection* connection,
|
||||||
|
@ -108,6 +109,7 @@ class InternalServer {
|
||||||
bool m_withLibraryButton;
|
bool m_withLibraryButton;
|
||||||
bool m_blockExternalLinks;
|
bool m_blockExternalLinks;
|
||||||
std::string m_indexTemplateString;
|
std::string m_indexTemplateString;
|
||||||
|
int m_ipConnectionLimit;
|
||||||
struct MHD_Daemon* mp_daemon;
|
struct MHD_Daemon* mp_daemon;
|
||||||
|
|
||||||
Library* mp_library;
|
Library* mp_library;
|
||||||
|
|
Loading…
Reference in New Issue