about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/engine/e_config_variables.h1
-rw-r--r--src/engine/e_network.c6
-rw-r--r--src/engine/e_network.h1
-rw-r--r--src/engine/server/es_server.c28
-rw-r--r--src/game/server/gs_server.cpp2
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;
 }