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