about summary refs log tree commit diff
path: root/src/engine/network.c
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2007-10-28 11:30:25 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2007-10-28 11:30:25 +0000
commita3ce2eb90cd26fe87042344175e5c9669adb7dcd (patch)
treed936a8ffafe366caea08c5bb384794034c590322 /src/engine/network.c
parenteba83b7e194cc6b4ba76fd5e048d81279becfc35 (diff)
downloadzcatch-a3ce2eb90cd26fe87042344175e5c9669adb7dcd.tar.gz
zcatch-a3ce2eb90cd26fe87042344175e5c9669adb7dcd.zip
major update. splitted the player information into two diffrent network items
Diffstat (limited to 'src/engine/network.c')
-rw-r--r--src/engine/network.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/engine/network.c b/src/engine/network.c
index 05779831..1005bbf2 100644
--- a/src/engine/network.c
+++ b/src/engine/network.c
@@ -17,7 +17,8 @@ enum
 	NETWORK_VERSION = 1,
 	
 	NETWORK_HEADER_SIZE = 6,
-	NETWORK_MAX_PACKET_SIZE = 1024,
+	NETWORK_MAX_PAYLOAD = 1024,
+	NETWORK_MAX_PACKET_SIZE = NETWORK_HEADER_SIZE+NETWORK_MAX_PAYLOAD,
 	NETWORK_MAX_CLIENTS = 16,
 	
 	NETWORK_CONNSTATE_OFFLINE=0,
@@ -738,6 +739,8 @@ int netserver_recv(NETSERVER *s, NETPACKET *packet)
 
 int netserver_send(NETSERVER *s, NETPACKET *packet)
 {
+	dbg_assert(packet->data_size < NETWORK_MAX_PAYLOAD, "packet payload too big");
+	
 	if(packet->flags&PACKETFLAG_CONNLESS)
 	{
 		/* send connectionless packet */
@@ -775,9 +778,12 @@ void netserver_stats(NETSERVER *s, NETSTATS *stats)
 	
 	for(c = 0; c < s->max_clients; c++)
 	{
-		int *sstats = (int *)(&(s->slots[c].conn.stats));
-		for(i = 0; i < num_stats; i++)
-			istats[i] += sstats[i];
+		if(s->slots[c].conn.state != NETWORK_CONNSTATE_OFFLINE)
+		{
+			int *sstats = (int *)(&(s->slots[c].conn.stats));
+			for(i = 0; i < num_stats; i++)
+				istats[i] += sstats[i];
+		}
 	}
 }
 
@@ -869,6 +875,8 @@ int netclient_recv(NETCLIENT *c, NETPACKET *packet)
 
 int netclient_send(NETCLIENT *c, NETPACKET *packet)
 {
+	dbg_assert(packet->data_size < NETWORK_MAX_PAYLOAD, "packet payload too big");
+	
 	if(packet->flags&PACKETFLAG_CONNLESS)
 	{
 		/* send connectionless packet */