HTTPCommon.cpp 1.0 KB
Newer Older
1 2
#include <DB/IO/HTTPCommon.h>

3 4
#include <DB/Common/config.h>
#if Poco_NetSSL_FOUND
5 6 7 8 9 10
#include <Poco/Net/AcceptCertificateHandler.h>
#include <Poco/Net/Context.h>
#include <Poco/Net/InvalidCertificateHandler.h>
#include <Poco/Net/PrivateKeyPassphraseHandler.h>
#include <Poco/Net/RejectCertificateHandler.h>
#include <Poco/Net/SSLManager.h>
11 12
#endif
#include <Poco/Net/HTTPServerResponse.h>
13
#include <Poco/Util/Application.h>
14

15 16 17

namespace DB
{
A
Alexey Milovidov 已提交
18 19
void setResponseDefaultHeaders(Poco::Net::HTTPServerResponse & response)
{
20 21
    if (!response.getKeepAlive())
        return;
22

23 24 25
    Poco::Timespan keep_alive_timeout(Poco::Util::Application::instance().config().getInt("keep_alive_timeout", 10), 0);
    if (keep_alive_timeout.totalSeconds())
        response.set("Keep-Alive", "timeout=" + std::to_string(keep_alive_timeout.totalSeconds()));
26 27
}

P
proller 已提交
28
std::once_flag ssl_init_once;
29

P
proller 已提交
30
void SSLInit()
31
{
32
    // http://stackoverflow.com/questions/18315472/https-request-in-c-using-poco
33
#if Poco_NetSSL_FOUND
34
    Poco::Net::initializeSSL();
35
#endif
36
}
37
}