From 8254bf23366950dd6010ab03053867aefb7a1438 Mon Sep 17 00:00:00 2001 From: Magnus Auvinen Date: Tue, 18 Dec 2007 23:37:22 +0000 Subject: fixed sv_status command --- src/engine/e_config_variables.h | 1 + src/engine/e_network.c | 6 ++++++ src/engine/e_network.h | 1 + src/engine/server/es_server.c | 28 ++++++++++++++++++++++++++++ src/game/server/gs_server.cpp | 2 -- 5 files changed, 36 insertions(+), 2 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); diff --git a/src/game/server/gs_server.cpp b/src/game/server/gs_server.cpp index 0fbbb002..3e0685a8 100644 --- a/src/game/server/gs_server.cpp +++ b/src/game/server/gs_server.cpp @@ -572,8 +572,6 @@ static float evaluate_spawn(spawneval *eval, vec2 pos) else score += 1.0f/d; - dbg_msg("", "(%f,%f) = %f", pos.x, pos.y, score); - return score; } -- cgit 1.4.1