![]() |
Crossfire Server, Trunk
1.75.0
|
#include "global.h"#include <ctype.h>#include <mutex>#include <thread>#include <system_error>#include <sys/types.h>#include <netinet/in.h>#include <netdb.h>#include <arpa/inet.h>#include "metaserver2.h"#include "version.h"
Include dependency graph for metaserver.cpp:Go to the source code of this file.
Data Structures | |
| struct | LocalMeta2Info |
| LocalMeta2Info basically holds all the non server metaserver2 information that we read from the metaserver2 file. More... | |
Functions | |
| int | count_players () |
| void | metaserver2_exit () |
| Stop metaserver updates. More... | |
| int | metaserver2_init (void) |
| This initializes the metaserver2 logic - it reads the metaserver2 file, storing the values away. More... | |
| void | metaserver_update (void) |
| Updates our info in the metaserver Note that this is used for both metaserver1 and metaserver2 - for metaserver2, it just copies dynamic data into private data structure, doing locking in the process. More... | |
Variables | |
| static LocalMeta2Info | local_info |
| Non volatile information on the server. More... | |
| MetaServer2_UpdateInfo | metaserver2_updateinfo |
| Statistics on players and such sent to the metaserver2. More... | |
| static std::thread | metaserver_thread |
| Metaserver thread, if notifications are enabled. More... | |
| static std::vector< std::string > | metaservers |
| Metaservers to send information to, list of hostnames. More... | |
| static std::mutex | ms2_info_mutex |
| Mutex to protect access to metaserver2_updateinfo. More... | |
| static std::timed_mutex | ms2_signal |
| Mutex to signal the thread should stop. More... | |
| int count_players | ( | ) |
Definition at line 48 of file metaserver.cpp.
References first_player, FLAG_AFK, FLAG_WIZ, player::next, num_players, QUERY_FLAG, ST_GET_PARTY_PASSWORD, and ST_PLAYING.
Referenced by check_shutdown(), and metaserver_update().
Here is the caller graph for this function:| void metaserver2_exit | ( | ) |
Stop metaserver updates.
Definition at line 494 of file metaserver.cpp.
References metaserver_thread, and ms2_signal.
Referenced by cleanup().
Here is the caller graph for this function:| int metaserver2_init | ( | void | ) |
This initializes the metaserver2 logic - it reads the metaserver2 file, storing the values away.
Note that it may be possible/desirable for the server to re-read the values and restart connections (for example, a new metaserver has been added and you want to start updates to it immediately and not restart the server). Because of that, there is some extra logic (has_init) to try to take that into account.
Definition at line 331 of file metaserver.cpp.
References LocalMeta2Info::archbase, buf, LocalMeta2Info::codebase, Settings::confdir, Settings::csport, FALSE, LocalMeta2Info::flags, FREE_AND_CLEAR, LocalMeta2Info::hostname, LocalMeta2Info::html_comment, llevError, local_info, LOG(), LocalMeta2Info::mapbase, MAX_BUF, metaserver2_updateinfo, metaserver_thread, metaservers, ms2_signal, LocalMeta2Info::notification, LocalMeta2Info::portnumber, settings, strcasecmp(), strdup_local, LocalMeta2Info::text_comment, and TRUE.
Referenced by init().
Here is the call graph for this function:
Here is the caller graph for this function:| void metaserver_update | ( | void | ) |
Updates our info in the metaserver Note that this is used for both metaserver1 and metaserver2 - for metaserver2, it just copies dynamic data into private data structure, doing locking in the process.
Definition at line 80 of file metaserver.cpp.
References count_players(), cst_tot, CS_Stats::ibytes, MetaServer2_UpdateInfo::in_bytes, metaserver2_updateinfo, ms2_info_mutex, MetaServer2_UpdateInfo::num_players, CS_Stats::obytes, MetaServer2_UpdateInfo::out_bytes, time, CS_Stats::time_start, and MetaServer2_UpdateInfo::uptime.
Referenced by do_specials().
Here is the call graph for this function:
Here is the caller graph for this function:
|
static |
Non volatile information on the server.
Definition at line 132 of file metaserver.cpp.
Referenced by metaserver2_init().
| MetaServer2_UpdateInfo metaserver2_updateinfo |
Statistics on players and such sent to the metaserver2.
Definition at line 138 of file metaserver.cpp.
Referenced by metaserver2_init(), and metaserver_update().
|
static |
Metaserver thread, if notifications are enabled.
Definition at line 135 of file metaserver.cpp.
Referenced by metaserver2_exit(), and metaserver2_init().
|
static |
Metaservers to send information to, list of hostnames.
Definition at line 109 of file metaserver.cpp.
Referenced by metaserver2_init().
|
static |
Mutex to protect access to metaserver2_updateinfo.
Definition at line 44 of file metaserver.cpp.
Referenced by metaserver_update().
|
static |
Mutex to signal the thread should stop.
Definition at line 46 of file metaserver.cpp.
Referenced by metaserver2_exit(), and metaserver2_init().