From a3ce2eb90cd26fe87042344175e5c9669adb7dcd Mon Sep 17 00:00:00 2001 From: Magnus Auvinen Date: Sun, 28 Oct 2007 11:30:25 +0000 Subject: major update. splitted the player information into two diffrent network items --- src/engine/network.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'src/engine/network.c') 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 */ -- cgit 1.4.1