mirror of
https://github.com/wesnoth/wesnoth
synced 2025-05-14 15:29:53 +00:00
Fixed server_manager to remove server connection from connection map
This commit is contained in:
parent
e227bde107
commit
34a8afecb0
@ -273,11 +273,12 @@ void set_raw_data_only()
|
||||
network_worker_pool::set_raw_data_only();
|
||||
}
|
||||
|
||||
server_manager::server_manager(int port, CREATE_SERVER create_server) : free_(false)
|
||||
server_manager::server_manager(int port, CREATE_SERVER create_server) : free_(false), connection_(0)
|
||||
{
|
||||
if(create_server != NO_SERVER && !server_socket) {
|
||||
try {
|
||||
server_socket = get_socket(connect("",port));
|
||||
connection_ = connect("",port);
|
||||
server_socket = get_socket(connection_);
|
||||
} catch(network::error& e) {
|
||||
if(create_server == MUST_CREATE_SERVER) {
|
||||
throw e;
|
||||
@ -300,6 +301,7 @@ void server_manager::stop()
|
||||
{
|
||||
if(free_) {
|
||||
SDLNet_TCP_Close(server_socket);
|
||||
remove_connection(connection_);
|
||||
server_socket = 0;
|
||||
free_ = false;
|
||||
}
|
||||
|
@ -65,6 +65,9 @@ private:
|
||||
|
||||
void set_raw_data_only();
|
||||
|
||||
typedef int connection;
|
||||
connection const null_connection = 0;
|
||||
|
||||
//! A server manager causes listening on a given port
|
||||
//! to occur for the duration of its lifetime.
|
||||
struct server_manager {
|
||||
@ -83,11 +86,9 @@ struct server_manager {
|
||||
|
||||
private:
|
||||
bool free_;
|
||||
connection connection_;
|
||||
};
|
||||
|
||||
typedef int connection;
|
||||
|
||||
connection const null_connection = 0;
|
||||
|
||||
//! The number of peers we are connected to.
|
||||
size_t nconnections();
|
||||
|
Loading…
x
Reference in New Issue
Block a user