diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-12-18 23:37:22 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-12-18 23:37:22 +0000 |
| commit | 8254bf23366950dd6010ab03053867aefb7a1438 (patch) | |
| tree | 7002a0d9bdad0d82bc8302d49e8383318062b2e1 /src/engine | |
| parent | ffa923bbebd5318ed2b5c805662b71f141fbdaf2 (diff) | |
| download | zcatch-8254bf23366950dd6010ab03053867aefb7a1438.tar.gz zcatch-8254bf23366950dd6010ab03053867aefb7a1438.zip | |
fixed sv_status command
Diffstat (limited to 'src/engine')
| -rw-r--r-- | src/engine/e_config_variables.h | 1 | ||||
| -rw-r--r-- | src/engine/e_network.c | 6 | ||||
| -rw-r--r-- | src/engine/e_network.h | 1 | ||||
| -rw-r--r-- | src/engine/server/es_server.c | 28 |
4 files changed, 36 insertions, 0 deletions
diff --git a/src/engine/e_config_variables.h b/src/engine/e_config_variables.h index e28bca4b..ff6f686a 100644 --- a/src/engine/e_config_variables.h +++ b/src/engine/e_config_variables.h @@ -51,6 +51,7 @@ MACRO_CONFIG_STR(sv_map, 128, "dm1") MACRO_CONFIG_INT(sv_map_reload, 0, 0, 1) MACRO_CONFIG_INT(sv_max_clients, 8, 1, 12) MACRO_CONFIG_INT(sv_high_bandwidth, 0, 0, 1) +MACRO_CONFIG_INT(sv_status, 0, 0, 1) MACRO_CONFIG_INT(debug, 0, 0, 1) MACRO_CONFIG_INT(dbg_stress, 0, 0, 0) diff --git a/src/engine/e_network.c b/src/engine/e_network.c index 9ae05bc0..b0c9bfc8 100644 --- a/src/engine/e_network.c +++ b/src/engine/e_network.c @@ -798,6 +798,12 @@ void netserver_stats(NETSERVER *s, NETSTATS *stats) } } +int netserver_client_addr(NETSERVER *s, int client_id, NETADDR4 *addr) +{ + *addr = s->slots[client_id].conn.peeraddr; + return 1; +} + NETCLIENT *netclient_open(NETADDR4 bindaddr, int flags) { NETCLIENT *client = (NETCLIENT *)mem_alloc(sizeof(NETCLIENT), 1); diff --git a/src/engine/e_network.h b/src/engine/e_network.h index 338c5982..96a49692 100644 --- a/src/engine/e_network.h +++ b/src/engine/e_network.h @@ -47,6 +47,7 @@ int netserver_send(NETSERVER *s, NETPACKET *packet); int netserver_close(NETSERVER *s); int netserver_update(NETSERVER *s); int netserver_drop(NETSERVER *s, int client_id, const char *reason); +int netserver_client_addr(NETSERVER *s, int client_id, NETADDR4 *addr); int netserver_max_clients(NETSERVER *s); void netserver_stats(NETSERVER *s, NETSTATS *stats); diff --git a/src/engine/server/es_server.c b/src/engine/server/es_server.c index 233295f1..488fb929 100644 --- a/src/engine/server/es_server.c +++ b/src/engine/server/es_server.c @@ -707,6 +707,28 @@ static void server_send_serverinfo(NETADDR4 *addr) netserver_send(net, &packet); } +static void server_dump_status() +{ + int i; + NETADDR4 addr; + dbg_msg("server", "-- status --"); + for(i = 0; i < MAX_CLIENTS; i++) + { + if(clients[i].state == SRVCLIENT_STATE_INGAME) + { + netserver_client_addr(net, i, &addr); + dbg_msg("server", "id=%d addr=%d.%d.%d.%d:%d name='%s' score=%d", + i, addr.ip[0], addr.ip[1], addr.ip[2], addr.ip[3], addr.port, + clients[i].name, clients[i].score); + } + } + dbg_msg("server", "-- end status --"); + + config.sv_status = 0; +} + + + static void server_send_fwcheckresponse(NETADDR4 *addr) { @@ -974,6 +996,12 @@ static int server_run() reporttime += time_freq()*reportinterval; } + if(config.sv_status) + { + server_dump_status(); + config.sv_status = 0; + } + if(config.dbg_hitch) { thread_sleep(config.dbg_hitch); |