Issue1121 (#1122)
* Fixed test/Makefile problem when cleaning *.pem files * Fix #1121
This commit is contained in:
parent
084c643973
commit
743ecbd365
31
httplib.h
31
httplib.h
@ -2406,12 +2406,14 @@ inline bool keep_alive(socket_t sock, time_t keep_alive_timeout_sec) {
|
|||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
inline bool
|
inline bool
|
||||||
process_server_socket_core(socket_t sock, size_t keep_alive_max_count,
|
process_server_socket_core(const std::atomic<socket_t> &svr_sock, socket_t sock,
|
||||||
|
size_t keep_alive_max_count,
|
||||||
time_t keep_alive_timeout_sec, T callback) {
|
time_t keep_alive_timeout_sec, T callback) {
|
||||||
assert(keep_alive_max_count > 0);
|
assert(keep_alive_max_count > 0);
|
||||||
auto ret = false;
|
auto ret = false;
|
||||||
auto count = keep_alive_max_count;
|
auto count = keep_alive_max_count;
|
||||||
while (count > 0 && keep_alive(sock, keep_alive_timeout_sec)) {
|
while (svr_sock != INVALID_SOCKET && count > 0 &&
|
||||||
|
keep_alive(sock, keep_alive_timeout_sec)) {
|
||||||
auto close_connection = count == 1;
|
auto close_connection = count == 1;
|
||||||
auto connection_closed = false;
|
auto connection_closed = false;
|
||||||
ret = callback(close_connection, connection_closed);
|
ret = callback(close_connection, connection_closed);
|
||||||
@ -2423,12 +2425,13 @@ process_server_socket_core(socket_t sock, size_t keep_alive_max_count,
|
|||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
inline bool
|
inline bool
|
||||||
process_server_socket(socket_t sock, size_t keep_alive_max_count,
|
process_server_socket(const std::atomic<socket_t> &svr_sock, socket_t sock,
|
||||||
|
size_t keep_alive_max_count,
|
||||||
time_t keep_alive_timeout_sec, time_t read_timeout_sec,
|
time_t keep_alive_timeout_sec, time_t read_timeout_sec,
|
||||||
time_t read_timeout_usec, time_t write_timeout_sec,
|
time_t read_timeout_usec, time_t write_timeout_sec,
|
||||||
time_t write_timeout_usec, T callback) {
|
time_t write_timeout_usec, T callback) {
|
||||||
return process_server_socket_core(
|
return process_server_socket_core(
|
||||||
sock, keep_alive_max_count, keep_alive_timeout_sec,
|
svr_sock, sock, keep_alive_max_count, keep_alive_timeout_sec,
|
||||||
[&](bool close_connection, bool &connection_closed) {
|
[&](bool close_connection, bool &connection_closed) {
|
||||||
SocketStream strm(sock, read_timeout_sec, read_timeout_usec,
|
SocketStream strm(sock, read_timeout_sec, read_timeout_usec,
|
||||||
write_timeout_sec, write_timeout_usec);
|
write_timeout_sec, write_timeout_usec);
|
||||||
@ -5540,8 +5543,9 @@ inline bool Server::is_valid() const { return true; }
|
|||||||
|
|
||||||
inline bool Server::process_and_close_socket(socket_t sock) {
|
inline bool Server::process_and_close_socket(socket_t sock) {
|
||||||
auto ret = detail::process_server_socket(
|
auto ret = detail::process_server_socket(
|
||||||
sock, keep_alive_max_count_, keep_alive_timeout_sec_, read_timeout_sec_,
|
svr_sock_, sock, keep_alive_max_count_, keep_alive_timeout_sec_,
|
||||||
read_timeout_usec_, write_timeout_sec_, write_timeout_usec_,
|
read_timeout_sec_, read_timeout_usec_, write_timeout_sec_,
|
||||||
|
write_timeout_usec_,
|
||||||
[this](Stream &strm, bool close_connection, bool &connection_closed) {
|
[this](Stream &strm, bool close_connection, bool &connection_closed) {
|
||||||
return process_request(strm, close_connection, connection_closed,
|
return process_request(strm, close_connection, connection_closed,
|
||||||
nullptr);
|
nullptr);
|
||||||
@ -6904,14 +6908,13 @@ bool ssl_connect_or_accept_nonblocking(socket_t sock, SSL *ssl,
|
|||||||
}
|
}
|
||||||
|
|
||||||
template <typename T>
|
template <typename T>
|
||||||
inline bool
|
inline bool process_server_socket_ssl(
|
||||||
process_server_socket_ssl(SSL *ssl, socket_t sock, size_t keep_alive_max_count,
|
const std::atomic<socket_t> &svr_sock, SSL *ssl, socket_t sock,
|
||||||
time_t keep_alive_timeout_sec,
|
size_t keep_alive_max_count, time_t keep_alive_timeout_sec,
|
||||||
time_t read_timeout_sec, time_t read_timeout_usec,
|
time_t read_timeout_sec, time_t read_timeout_usec, time_t write_timeout_sec,
|
||||||
time_t write_timeout_sec, time_t write_timeout_usec,
|
time_t write_timeout_usec, T callback) {
|
||||||
T callback) {
|
|
||||||
return process_server_socket_core(
|
return process_server_socket_core(
|
||||||
sock, keep_alive_max_count, keep_alive_timeout_sec,
|
svr_sock, sock, keep_alive_max_count, keep_alive_timeout_sec,
|
||||||
[&](bool close_connection, bool &connection_closed) {
|
[&](bool close_connection, bool &connection_closed) {
|
||||||
SSLSocketStream strm(sock, ssl, read_timeout_sec, read_timeout_usec,
|
SSLSocketStream strm(sock, ssl, read_timeout_sec, read_timeout_usec,
|
||||||
write_timeout_sec, write_timeout_usec);
|
write_timeout_sec, write_timeout_usec);
|
||||||
@ -7170,7 +7173,7 @@ inline bool SSLServer::process_and_close_socket(socket_t sock) {
|
|||||||
bool ret = false;
|
bool ret = false;
|
||||||
if (ssl) {
|
if (ssl) {
|
||||||
ret = detail::process_server_socket_ssl(
|
ret = detail::process_server_socket_ssl(
|
||||||
ssl, sock, keep_alive_max_count_, keep_alive_timeout_sec_,
|
svr_sock_, ssl, sock, keep_alive_max_count_, keep_alive_timeout_sec_,
|
||||||
read_timeout_sec_, read_timeout_usec_, write_timeout_sec_,
|
read_timeout_sec_, read_timeout_usec_, write_timeout_sec_,
|
||||||
write_timeout_usec_,
|
write_timeout_usec_,
|
||||||
[this, ssl](Stream &strm, bool close_connection,
|
[this, ssl](Stream &strm, bool close_connection,
|
||||||
|
@ -68,4 +68,4 @@ cert.pem:
|
|||||||
#c_rehash .
|
#c_rehash .
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -f test test_split test_proxy server_fuzzer pem *.0 *.o *.1 *.srl httplib.h httplib.cc
|
rm -f test test_split test_proxy server_fuzzer *.pem *.0 *.o *.1 *.srl httplib.h httplib.cc
|
||||||
|
Loading…
x
Reference in New Issue
Block a user