diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-10-28 11:30:25 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2007-10-28 11:30:25 +0000 |
| commit | a3ce2eb90cd26fe87042344175e5c9669adb7dcd (patch) | |
| tree | d936a8ffafe366caea08c5bb384794034c590322 /src/engine/network.c | |
| parent | eba83b7e194cc6b4ba76fd5e048d81279becfc35 (diff) | |
| download | zcatch-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.c | 16 |
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 */ |