don't cache disconnected sockets
This commit is contained in:
@@ -71,6 +71,7 @@ void packet_client::connect(client &cli) {
|
||||
boost::asio::connect(cli.socket, resolve_results_);
|
||||
cli.socket.set_option(boost::asio::ip::tcp::no_delay(true));
|
||||
cli.socket.set_option(boost::asio::socket_base::linger(false, 0));
|
||||
cli.socket.set_option(boost::asio::socket_base::keep_alive(true));
|
||||
|
||||
packet response;
|
||||
auto res = read_packet(cli, response);
|
||||
@@ -103,7 +104,11 @@ auto packet_client::get_client() -> std::shared_ptr<packet_client::client> {
|
||||
}
|
||||
|
||||
void packet_client::put_client(std::shared_ptr<client> &cli) {
|
||||
mutex_lock clientsLock(clients_mutex_);
|
||||
if (not cli->socket.is_open()) {
|
||||
return;
|
||||
}
|
||||
|
||||
mutex_lock clients_lock(clients_mutex_);
|
||||
if (clients_.size() < cfg_.max_connections) {
|
||||
clients_.emplace_back(cli);
|
||||
}
|
||||
|
Reference in New Issue
Block a user