summaryrefslogtreecommitdiff
path: root/src/server/send.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/send.c')
-rw-r--r--src/server/send.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/server/send.c b/src/server/send.c
index 6cb9fdc..baf5448 100644
--- a/src/server/send.c
+++ b/src/server/send.c
@@ -346,8 +346,16 @@ static qboolean compress_message(client_t *client, int flags)
if (!client->has_zlib)
return qfalse;
- // FIXME: make this configurable?
- if (msg_write.cursize < MAX_PACKETLEN_DEFAULT / 2)
+ // older clients have problems seamlessly writing svc_zpackets
+ if (client->settings[CLS_RECORDING]) {
+ if (client->protocol != PROTOCOL_VERSION_Q2PRO)
+ return qfalse;
+ if (client->version < PROTOCOL_VERSION_Q2PRO_EXTENDED_LAYOUT)
+ return qfalse;
+ }
+
+ // compress only sufficiently large layouts
+ if (msg_write.cursize < client->netchan->maxpacketlen / 2)
return qfalse;
deflateReset(&svs.z);