mirror of
https://github.com/wesnoth/wesnoth
synced 2025-04-29 00:31:39 +00:00
the not_logged_in_ pseudo-game...
...was only used as a set of player identifiers, so use a std::set instead of hacks in the game class.
This commit is contained in:
parent
613189f9f0
commit
b0d4badfd3
@ -296,7 +296,7 @@ server::server(int port, const std::string& config_file, size_t min_threads,
|
|||||||
players_(),
|
players_(),
|
||||||
ghost_players_(),
|
ghost_players_(),
|
||||||
games_(),
|
games_(),
|
||||||
not_logged_in_(players_),
|
not_logged_in_(),
|
||||||
lobby_(),
|
lobby_(),
|
||||||
input_(),
|
input_(),
|
||||||
config_file_(config_file),
|
config_file_(config_file),
|
||||||
@ -648,7 +648,7 @@ void server::run() {
|
|||||||
DBG_SERVER << ip << "\tnew connection accepted. (socket: "
|
DBG_SERVER << ip << "\tnew connection accepted. (socket: "
|
||||||
<< sock << ")\n";
|
<< sock << ")\n";
|
||||||
send_doc(version_query_response_, sock);
|
send_doc(version_query_response_, sock);
|
||||||
not_logged_in_.add_player(sock, true);
|
not_logged_in_.insert(sock);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -737,9 +737,10 @@ void server::run() {
|
|||||||
// Was the user already logged in?
|
// Was the user already logged in?
|
||||||
const wesnothd::player_map::iterator pl_it = players_.find(e.socket);
|
const wesnothd::player_map::iterator pl_it = players_.find(e.socket);
|
||||||
if (pl_it == players_.end()) {
|
if (pl_it == players_.end()) {
|
||||||
if (not_logged_in_.is_observer(e.socket)) {
|
std::set<network::connection>::iterator i = not_logged_in_.find(e.socket);
|
||||||
|
if (i != not_logged_in_.end()) {
|
||||||
DBG_SERVER << ip << "\tNot logged in user disconnected.\n";
|
DBG_SERVER << ip << "\tNot logged in user disconnected.\n";
|
||||||
not_logged_in_.remove_player(e.socket);
|
not_logged_in_.erase(i);
|
||||||
} else {
|
} else {
|
||||||
WRN_SERVER << ip << "\tWarning: User disconnected right after the connection was accepted.\n";
|
WRN_SERVER << ip << "\tWarning: User disconnected right after the connection was accepted.\n";
|
||||||
}
|
}
|
||||||
@ -829,7 +830,7 @@ void server::process_data(const network::connection sock,
|
|||||||
if(root.has_attr("ping")) {
|
if(root.has_attr("ping")) {
|
||||||
// Ignore client side pings for now.
|
// Ignore client side pings for now.
|
||||||
return;
|
return;
|
||||||
} else if(not_logged_in_.is_observer(sock)) {
|
} else if(not_logged_in_.find(sock) != not_logged_in_.end()) {
|
||||||
// Someone who is not yet logged in is sending login details.
|
// Someone who is not yet logged in is sending login details.
|
||||||
process_login(sock, data);
|
process_login(sock, data);
|
||||||
} else if (simple_wml::node* query = root.child("query")) {
|
} else if (simple_wml::node* query = root.child("query")) {
|
||||||
@ -1069,7 +1070,7 @@ void server::process_login(const network::connection sock,
|
|||||||
if( !selective_ping )
|
if( !selective_ping )
|
||||||
ghost_players_.insert(sock) ;
|
ghost_players_.insert(sock) ;
|
||||||
|
|
||||||
not_logged_in_.remove_player(sock);
|
not_logged_in_.erase(sock);
|
||||||
lobby_.add_player(sock);
|
lobby_.add_player(sock);
|
||||||
// Send the new player the entire list of games and players
|
// Send the new player the entire list of games and players
|
||||||
send_doc(games_and_users_list_, sock);
|
send_doc(games_and_users_list_, sock);
|
||||||
|
@ -38,7 +38,7 @@ private:
|
|||||||
std::set<network::connection> ghost_players_;
|
std::set<network::connection> ghost_players_;
|
||||||
|
|
||||||
std::vector<wesnothd::game*> games_;
|
std::vector<wesnothd::game*> games_;
|
||||||
wesnothd::game not_logged_in_;
|
std::set<network::connection> not_logged_in_;
|
||||||
|
|
||||||
/** The lobby is implemented as a room. */
|
/** The lobby is implemented as a room. */
|
||||||
wesnothd::room lobby_;
|
wesnothd::room lobby_;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user