Definition at line 248 of file server.cpp.
server::server | ( | int | port, | |
input_stream & | input, | |||
const std::string & | config_file, | |||
size_t | min_threads, | |||
size_t | max_threads | |||
) |
Definition at line 329 of file server.cpp.
References exit_sigint(), exit_sigterm(), load_config(), reload_config(), and SIGHUP.
Referenced by main().
void server::run | ( | ) |
Definition at line 475 of file server.cpp.
References network::accept_connection(), game::add_player(), ban_manager_, buf, cfg_, wesnothd::ban_manager::check_ban_times(), config_reload, data, DBG_SERVER, delete_game(), proxy::disconnect(), network::error::disconnect(), network::disconnect(), dump_stats(), ERR_SERVER, fps_limit_, g, games_, games_and_users_list_, get_cpu_time(), graceful_restart, simple_wml::INIT_COMPRESSED, input_, network::ip_address(), ip_exceeds_connection_limit(), is_ip_banned(), game::is_member(), game::is_observer(), proxy::is_proxy(), last_ping_, last_stats_, lexical_cast(), fps_limiter::limit(), load_config(), lobby_, LOG_SERVER, make_delete_diff(), network::error::message, config::error::message, metrics_, metrics::no_requests(), not_logged_in_, network::null_connection, players_, process_command(), process_data(), network::process_send_queue(), read_config(), input_stream::read_line(), network::receive_data(), metrics::record_sample(), game::remove_player(), request_sample_frequency, simple_wml::document::root(), game::send_data(), network::send_data(), send_doc(), send_error(), metrics::service_request(), sock, network::error::socket, update_game_in_lobby(), version_query_response_, WRN_CONFIG, and WRN_SERVER.
void server::send_error | ( | network::connection | sock, | |
const char * | msg | |||
) | const [private] |
Definition at line 351 of file server.cpp.
References simple_wml::string_span::begin(), simple_wml::document::output_compressed(), simple_wml::document::root(), network::send_raw_data(), and simple_wml::string_span::size().
Referenced by process_login(), and run().
void server::send_error_dup | ( | network::connection | sock, | |
const std::string & | msg | |||
) | const [private] |
Definition at line 359 of file server.cpp.
References simple_wml::string_span::begin(), simple_wml::document::output_compressed(), simple_wml::document::root(), network::send_raw_data(), and simple_wml::string_span::size().
config server::read_config | ( | ) | const [private] |
Read the server config from file 'config_file_'.
Definition at line 367 of file server.cpp.
References config_file_, ERR_CONFIG, LOG_SERVER, config::error::message, preprocess_file(), read(), and stream.
Referenced by run().
void server::load_config | ( | ) | [private] |
Parse the server config into local variables.
Definition at line 388 of file server.cpp.
References accepted_versions_, admin_passwd_, ban_manager_, cfg_, concurrent_connections_, default_max_messages_, default_time_period_, disallowed_names_, fps_limit_, motd_, proxy_versions_, redirected_versions_, restart_command, wesnothd::ban_manager::set_default_ban_times(), fps_limiter::set_ms_per_frame(), utils::split(), and game_config::version.
bool server::ip_exceeds_connection_limit | ( | const std::string & | ip | ) | const [private] |
Definition at line 451 of file server.cpp.
References concurrent_connections_, connections, network::ip_address(), and players_.
Referenced by run().
bool server::is_ip_banned | ( | const std::string & | ip | ) | const [private] |
Definition at line 463 of file server.cpp.
References ban_manager_, and wesnothd::ban_manager::is_ip_banned().
Referenced by process_command(), and run().
void server::dump_stats | ( | const time_t & | now | ) | [private] |
Definition at line 467 of file server.cpp.
References games_, last_stats_, lobby_, LOG_SERVER, game::nobservers(), and players_.
Referenced by run().
void server::process_data | ( | const network::connection | sock, | |
simple_wml::document & | data | |||
) | [private] |
Definition at line 681 of file server.cpp.
References simple_wml::node::child(), simple_wml::node::has_attr(), game::is_observer(), proxy::is_proxy(), lobby_, not_logged_in_, process_data_game(), process_data_lobby(), process_login(), process_query(), process_whisper(), proxy::received_data(), and simple_wml::document::root().
Referenced by run().
void server::process_login | ( | const network::connection | sock, | |
simple_wml::document & | data | |||
) | [private] |
Definition at line 706 of file server.cpp.
References accepted_versions_, config::add_child(), game::add_player(), simple_wml::string_span::begin(), simple_wml::document::child(), proxy::create_proxy(), default_max_messages_, default_time_period_, disallowed_names_, simple_wml::string_span::end(), ERR_SERVER, g, games_, games_and_users_list_, network::ip_address(), utils::isvalid_username(), join_lobby_response_, lobby_, LOG_SERVER, preferences::login(), login_response_, utils::lowercase(), make_add_diff(), motd_, not_logged_in_, players_, proxy_versions_, redirected_versions_, game::remove_player(), simple_wml::document::root(), game::send_data(), network::send_data(), send_doc(), send_error(), game::send_server_message(), game_config::version, and utils::wildcard_string_match().
Referenced by process_data().
void server::process_query | ( | const network::connection | sock, | |
simple_wml::node & | query | |||
) | [private] |
Handle queries from clients.
Definition at line 847 of file server.cpp.
References admin_passwd_, admins_, command, DBG_SERVER, network::ip_address(), lobby_, LOG_SERVER, players_, process_command(), game::send_server_message(), simple_wml::string_span::to_string(), and WRN_SERVER.
Referenced by process_data().
std::string server::process_command | ( | const std::string & | cmd | ) | [private] |
Process commands from admins and users.
Definition at line 900 of file server.cpp.
References wesnothd::ban_manager::ban(), ban_manager_, network::connection_stats::bytes_received, network::connection_stats::bytes_sent, command, g, games_, wesnothd::ban_manager::get_ban_help(), network::get_connection_stats(), network::get_pending_stats(), graceful_restart, input_, network::ip_address(), is_ip_banned(), wesnothd::ban_manager::list_bans(), lobby_, LOG_SERVER, metrics_, motd_, network::pending_statistics::nbytes_pending_sends, game::nobservers(), network::pending_statistics::npending_sends, wesnothd::ban_manager::parse_time(), players_, network::queue_disconnect(), request_sample_frequency, restart_command, game::send_server_message_to_all(), server_, start_new_server(), simple_wml::document::stats(), input_stream::stop(), network::server_manager::stop(), utils::strip(), network::connection_stats::time_connected, wesnothd::ban_manager::unban(), and utils::wildcard_string_match().
Referenced by process_query(), and run().
void server::process_whisper | ( | const network::connection | sock, | |
simple_wml::node & | whisper | |||
) | const [private] |
Handle private messages between players.
Definition at line 1102 of file server.cpp.
References simple_wml::node::copy_into(), data, ERR_SERVER, g, games_, simple_wml::INIT_COMPRESSED, players_, simple_wml::document::root(), send_doc(), simple_wml::node::set_attr(), and simple_wml::node::set_attr_dup().
Referenced by process_data().
void server::process_data_lobby | ( | const network::connection | sock, | |
simple_wml::document & | data | |||
) | [private] |
Definition at line 1157 of file server.cpp.
References simple_wml::document::child(), DBG_SERVER, ERR_SERVER, g, game::game(), games_, games_and_users_list_, graceful_restart, simple_wml::INIT_COMPRESSED, network::ip_address(), game::level(), lobby_, LOG_SERVER, make_change_diff(), players_, game::process_message(), game::remove_player(), simple_wml::document::root(), game::send_data(), send_doc(), game::send_server_message(), game::set_password(), and WRN_SERVER.
Referenced by process_data().
void server::process_data_game | ( | const network::connection | sock, | |
simple_wml::document & | data | |||
) | [private] |
Process data sent by a player in a game.
Note that 'data' by default gets broadcasted and saved in the replay.
Definition at line 1281 of file server.cpp.
References simple_wml::node::add_child(), game::add_player(), game::ban_user(), simple_wml::node::child(), simple_wml::document::child(), simple_wml::document::clear(), simple_wml::node::copy_into(), game::current_turn(), DBG_SERVER, delete_game(), game::describe_slots(), game::description(), ERR_SERVER, g, games_, games_and_users_list_, game::id(), lg::info, network::ip_address(), game::is_owner(), game::is_player(), game::kick_member(), game::level(), game::level_init(), game::load_next_scenario(), lobby_, LOG_SERVER, make_add_diff(), make_change_diff(), gamemap::MAX_PLAYERS, game::mute_all_observers(), game::mute_observer(), game::name(), game::nplayers(), simple_wml::document::output(), players_, game::process_message(), game::process_turn(), game::remove_player(), simple_wml::document::root(), game::send_data(), send_doc(), game::send_server_message(), game::send_server_message_to_all(), simple_wml::node::set_attr(), simple_wml::node::set_attr_dup(), game::set_description(), game::set_termination_reason(), game::start_game(), game::started(), simple_wml::document::swap(), game::termination_reason(), game::transfer_side_control(), update_game_in_lobby(), game::update_side_data(), and WRN_SERVER.
Referenced by process_data().
void server::delete_game | ( | std::vector< game * >::iterator | game_it | ) | [private] |
Definition at line 1631 of file server.cpp.
References game::add_players(), simple_wml::document::child(), simple_wml::node::children(), ERR_SERVER, g, metrics::game_terminated(), games_, games_and_users_list_, simple_wml::INIT_COMPRESSED, lobby_, LOG_SERVER, make_change_diff(), make_delete_diff(), metrics_, players_, simple_wml::node::remove_child(), simple_wml::document::root(), and game::send_data().
Referenced by process_data_game(), and run().
void server::update_game_in_lobby | ( | const game * | g, | |
network::connection | exclude = 0 | |||
) | [private] |
Definition at line 1690 of file server.cpp.
References game::description(), games_and_users_list_, lobby_, make_change_diff(), simple_wml::document::root(), and game::send_data().
Referenced by process_data_game(), and run().
void server::start_new_server | ( | ) | [private] |
Definition at line 888 of file server.cpp.
References LOG_SERVER, and restart_command.
Referenced by process_command().
const network::manager server::net_manager_ [private] |
Definition at line 256 of file server.cpp.
network::server_manager server::server_ [private] |
wesnothd::ban_manager server::ban_manager_ [private] |
Definition at line 258 of file server.cpp.
Referenced by is_ip_banned(), load_config(), process_command(), and run().
player_map server::players_ [private] |
std::map<network::connection,player>
Definition at line 261 of file server.cpp.
Referenced by delete_game(), dump_stats(), ip_exceeds_connection_limit(), process_command(), process_data_game(), process_data_lobby(), process_login(), process_query(), process_whisper(), and run().
std::vector<game*> server::games_ [private] |
Definition at line 262 of file server.cpp.
Referenced by delete_game(), dump_stats(), process_command(), process_data_game(), process_data_lobby(), process_login(), process_whisper(), and run().
game server::not_logged_in_ [private] |
Definition at line 263 of file server.cpp.
Referenced by process_data(), process_login(), and run().
game server::lobby_ [private] |
The lobby is implemented as a game.
Definition at line 265 of file server.cpp.
Referenced by delete_game(), dump_stats(), process_command(), process_data(), process_data_game(), process_data_lobby(), process_login(), process_query(), run(), and update_game_in_lobby().
input_stream& server::input_ [private] |
server socket/fifo
Definition at line 268 of file server.cpp.
Referenced by process_command(), and run().
const std::string server::config_file_ [private] |
config server::cfg_ [private] |
std::set<std::string> server::accepted_versions_ [private] |
std::map<std::string,config> server::redirected_versions_ [private] |
std::map<std::string,config> server::proxy_versions_ [private] |
std::vector<std::string> server::disallowed_names_ [private] |
std::string server::admin_passwd_ [private] |
std::set<network::connection> server::admins_ [private] |
std::string server::motd_ [private] |
Definition at line 282 of file server.cpp.
Referenced by load_config(), process_command(), and process_login().
size_t server::default_max_messages_ [private] |
size_t server::default_time_period_ [private] |
size_t server::concurrent_connections_ [private] |
Definition at line 285 of file server.cpp.
Referenced by ip_exceeds_connection_limit(), and load_config().
bool server::graceful_restart [private] |
Definition at line 286 of file server.cpp.
Referenced by process_command(), process_data_lobby(), and run().
std::string server::restart_command [private] |
Definition at line 287 of file server.cpp.
Referenced by load_config(), process_command(), and start_new_server().
simple_wml::document server::login_response_ [private] |
Definition at line 297 of file server.cpp.
Referenced by delete_game(), process_data_game(), process_data_lobby(), process_login(), run(), and update_game_in_lobby().
metrics server::metrics_ [private] |
Definition at line 299 of file server.cpp.
Referenced by delete_game(), process_command(), and run().
fps_limiter server::fps_limit_ [private] |
time_t server::last_ping_ [private] |
time_t server::last_stats_ [private] |
Generated by doxygen 1.5.5 on 23 May 2008 for The Battle for Wesnoth | Gna! | Forum | Wiki | CIA | devdocs |