/
githubmirror
/
nbs
Обзор
Документация
Войти
/
githubmirror
/
nbs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
library/cpp/neh/https.h
47 строк
2 KB
qkrorlqr
Initial NBS OpenSource export
28 апр 2023, 21:54
28 апр 2023, 21:54
783a858
Код
Авторство
О чём код?
#pragma once #include <openssl/ossl_typ.h> #include <util/generic/string.h> #include <util/generic/strbuf.h> #include <functional> namespace NNeh { class IProtocol; struct TParsedLocation; IProtocol* SSLGetProtocol(); IProtocol* SSLPostProtocol(); IProtocol* SSLFullProtocol(); /// if exceed soft limit, reduce quantity unused connections in cache void SetHttpOutputConnectionsLimits(size_t softLimit, size_t hardLimit); /// if exceed soft limit, reduce keepalive time for unused connections void SetHttpInputConnectionsLimits(size_t softLimit, size_t hardLimit); /// unused input sockets keepalive timeouts /// real(used) timeout: /// - max, if not reached soft limit /// - min, if reached hard limit /// - approx. linear changed[max..min], while conn. count in range [soft..hard] void SetHttpInputConnectionsTimeouts(unsigned minSeconds, unsigned maxSeconds); struct THttpsOptions { using TVerifyCallback = int (*)(int, X509_STORE_CTX*); using TPasswordCallback = std::function<TString (const TParsedLocation&, const TString&, const TString&)>; static TString CAFile; static TString CAPath; static TString ClientCertificate; static TString ClientPrivateKey; static TString ClientPrivateKeyPassword; static bool CheckCertificateHostname; static bool EnableSslServerDebug; static bool EnableSslClientDebug; static TVerifyCallback ClientVerifyCallback; static TPasswordCallback KeyPasswdCallback; static bool RedirectionNotError; static bool Set(TStringBuf name, TStringBuf value); }; }