Skip to content

Commit

Permalink
Avoid TLS truncation in user kick operation
Browse files Browse the repository at this point in the history
  • Loading branch information
loonycyborg committed Mar 11, 2021
1 parent ed1342f commit 719c17f
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions src/server/wesnothd/server.cpp
Expand Up @@ -29,6 +29,7 @@
#include "serialization/string_utils.hpp"
#include "serialization/unicode.hpp"
#include <functional>
#include "utils/general.hpp"
#include "utils/iterable_pair.hpp"
#include "game_version.hpp"

Expand Down Expand Up @@ -1864,8 +1865,13 @@ template<class SocketPtr> void server::send_server_message(SocketPtr socket, con

void server::disconnect_player(player_iterator player)
{
// FIXME: this is not a correct way for TLS
utils::visit([](auto&& socket) { socket->lowest_layer().shutdown(boost::asio::ip::tcp::socket::shutdown_receive); }, player->socket());
utils::visit([](auto&& socket) {
if constexpr (utils::decayed_is_same<tls_socket_ptr, decltype(socket)>) {
socket->shutdown();
} else {
socket->lowest_layer().shutdown(boost::asio::ip::tcp::socket::shutdown_receive);
}
}, player->socket());
}

void server::remove_player(player_iterator iter)
Expand Down

0 comments on commit 719c17f

Please sign in to comment.