server Class Reference

Collaboration diagram for server:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 server (int port, input_stream &input, const std::string &config_file, size_t min_threads, size_t max_threads)
void run ()

Private Member Functions

void send_error (network::connection sock, const char *msg) const
void send_error_dup (network::connection sock, const std::string &msg) const
config read_config () const
 Read the server config from file 'config_file_'.
void load_config ()
 Parse the server config into local variables.
bool ip_exceeds_connection_limit (const std::string &ip) const
bool is_ip_banned (const std::string &ip) const
void dump_stats (const time_t &now)
void process_data (const network::connection sock, simple_wml::document &data)
void process_login (const network::connection sock, simple_wml::document &data)
void process_query (const network::connection sock, simple_wml::node &query)
 Handle queries from clients.
std::string process_command (const std::string &cmd)
 Process commands from admins and users.
void process_whisper (const network::connection sock, simple_wml::node &whisper) const
 Handle private messages between players.
void process_data_lobby (const network::connection sock, simple_wml::document &data)
void process_data_game (const network::connection sock, simple_wml::document &data)
 Process data sent by a player in a game.
void delete_game (std::vector< game * >::iterator game_it)
void update_game_in_lobby (const game *g, network::connection exclude=0)
void start_new_server ()

Private Attributes

const network::manager net_manager_
network::server_manager server_
wesnothd::ban_manager ban_manager_
player_map players_
 std::map<network::connection,player>
std::vector< game * > games_
game not_logged_in_
game lobby_
 The lobby is implemented as a game.
input_streaminput_
 server socket/fifo
const std::string config_file_
config cfg_
std::set< std::string > accepted_versions_
std::map< std::string, configredirected_versions_
std::map< std::string, configproxy_versions_
std::vector< std::string > disallowed_names_
std::string admin_passwd_
std::set< network::connectionadmins_
std::string motd_
size_t default_max_messages_
size_t default_time_period_
size_t concurrent_connections_
bool graceful_restart
std::string restart_command
simple_wml::document version_query_response_
simple_wml::document login_response_
simple_wml::document join_lobby_response_
simple_wml::document games_and_users_list_
metrics metrics_
fps_limiter fps_limit_
time_t last_ping_
time_t last_stats_


Detailed Description

Definition at line 248 of file server.cpp.


Constructor & Destructor Documentation

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().


Member Function Documentation

void server::run (  ) 

void server::send_error ( network::connection  sock,
const char *  msg 
) const [private]

void server::send_error_dup ( network::connection  sock,
const std::string &  msg 
) const [private]

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]

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]

void server::process_login ( const network::connection  sock,
simple_wml::document data 
) [private]

void server::process_query ( const network::connection  sock,
simple_wml::node query 
) [private]

std::string server::process_command ( const std::string &  cmd  )  [private]

void server::process_whisper ( const network::connection  sock,
simple_wml::node whisper 
) const [private]

void server::process_data_lobby ( const network::connection  sock,
simple_wml::document data 
) [private]

void server::process_data_game ( const network::connection  sock,
simple_wml::document data 
) [private]

void server::delete_game ( std::vector< game * >::iterator  game_it  )  [private]

void server::update_game_in_lobby ( const game g,
network::connection  exclude = 0 
) [private]

void server::start_new_server (  )  [private]

Definition at line 888 of file server.cpp.

References LOG_SERVER, and restart_command.

Referenced by process_command().


Member Data Documentation

Definition at line 256 of file server.cpp.

Definition at line 257 of file server.cpp.

Referenced by process_command().

Definition at line 258 of file server.cpp.

Referenced by is_ip_banned(), load_config(), process_command(), and run().

std::vector<game*> server::games_ [private]

Definition at line 263 of file server.cpp.

Referenced by process_data(), process_login(), and run().

game server::lobby_ [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]

Definition at line 270 of file server.cpp.

Referenced by read_config().

config server::cfg_ [private]

Definition at line 271 of file server.cpp.

Referenced by load_config(), and run().

std::set<std::string> server::accepted_versions_ [private]

Definition at line 276 of file server.cpp.

Referenced by load_config(), and process_login().

Definition at line 277 of file server.cpp.

Referenced by load_config(), and process_login().

std::map<std::string,config> server::proxy_versions_ [private]

Definition at line 278 of file server.cpp.

Referenced by load_config(), and process_login().

std::vector<std::string> server::disallowed_names_ [private]

Definition at line 279 of file server.cpp.

Referenced by load_config(), and process_login().

std::string server::admin_passwd_ [private]

Definition at line 280 of file server.cpp.

Referenced by load_config(), and process_query().

std::set<network::connection> server::admins_ [private]

Definition at line 281 of file server.cpp.

Referenced by process_query().

std::string server::motd_ [private]

Definition at line 282 of file server.cpp.

Referenced by load_config(), process_command(), and process_login().

Definition at line 283 of file server.cpp.

Referenced by load_config(), and process_login().

size_t server::default_time_period_ [private]

Definition at line 284 of file server.cpp.

Referenced by load_config(), and process_login().

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().

Definition at line 294 of file server.cpp.

Referenced by run().

Definition at line 295 of file server.cpp.

Referenced by process_login().

Definition at line 296 of file server.cpp.

Referenced by process_login().

Definition at line 299 of file server.cpp.

Referenced by delete_game(), process_command(), and run().

Definition at line 300 of file server.cpp.

Referenced by load_config(), and run().

time_t server::last_ping_ [private]

Definition at line 302 of file server.cpp.

Referenced by run().

time_t server::last_stats_ [private]

Definition at line 303 of file server.cpp.

Referenced by dump_stats(), and run().


The documentation for this class was generated from the following file:

Generated by doxygen 1.5.5 on 23 May 2008 for The Battle for Wesnoth
Gna! | Forum | Wiki | CIA | devdocs