Fix protocol handshake with iostvoyHM 1.37 clients

iostvoyHM 1.37 asks for protocol 25 and falls back to legacy protocol 24
when rejected with a specific message.

When the protocol was changed to 26, the message the client checks for
whether it should use legacy protocol was changed causing it to no
longer be able to join. So let's restore the message.
This commit is contained in:
Zack Middleton 2015-08-16 01:23:10 -05:00
parent 8eeac09569
commit 7f5096c450

View file

@ -369,6 +369,17 @@ void SV_DirectConnect( netadr_t from ) {
{
if(version != com_protocol->integer)
{
#ifdef ELITEFORCE
#ifdef LEGACY_PROTOCOL
// if it's a iostvoyHM 1.37 client or 1.38 before quake3-ef_1.38-iorev2110.diff
// use a specific message so the client falls back to using the legacy protocol
// iostvoyHM 1.37: cl_main.c: if(!Q_strncmp(s, "Server uses protocol version 24.\n", 33))
if(version == 25)
NET_OutOfBandPrint(NS_SERVER, from, "print\nServer uses protocol version %i.\n"
"and protocol version %i (yours is %i).\n", PROTOCOL_LEGACY_VERSION, com_protocol->integer, version);
else
#endif
#endif
NET_OutOfBandPrint(NS_SERVER, from, "print\nServer uses protocol version %i "
"(yours is %i).\n", com_protocol->integer, version);
Com_DPrintf(" rejected connect from version %i\n", version);