From a91fecae920e1b6d9ca3dbdbf6251c11bd751d7c Mon Sep 17 00:00:00 2001 From: Magnus Auvinen Date: Fri, 17 Oct 2008 21:16:23 +0000 Subject: fixed fetching of server info and corrected some spelling errors --- src/engine/server/es_server.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'src/engine/server') diff --git a/src/engine/server/es_server.c b/src/engine/server/es_server.c index 5ff58dbe..2ef676a3 100644 --- a/src/engine/server/es_server.c +++ b/src/engine/server/es_server.c @@ -852,11 +852,19 @@ static void server_send_serverinfo(NETADDR *addr, int token) } packer_reset(&p); - packer_add_raw(&p, SERVERBROWSE_INFO, sizeof(SERVERBROWSE_INFO)); - /* token */ - str_format(buf, sizeof(buf), "%d", token); - packer_add_string(&p, buf, 6); + if(token >= 0) + { + /* new token based format */ + packer_add_raw(&p, SERVERBROWSE_INFO, sizeof(SERVERBROWSE_INFO)); + str_format(buf, sizeof(buf), "%d", token); + packer_add_string(&p, buf, 6); + } + else + { + /* old format */ + packer_add_raw(&p, SERVERBROWSE_OLD_INFO, sizeof(SERVERBROWSE_OLD_INFO)); + } packer_add_string(&p, mods_version(), 32); packer_add_string(&p, config.sv_name, 64); @@ -921,6 +929,13 @@ static void server_pump_network() { server_send_serverinfo(&packet.address, ((unsigned char *)packet.data)[sizeof(SERVERBROWSE_GETINFO)]); } + + + if(packet.data_size == sizeof(SERVERBROWSE_OLD_GETINFO) && + memcmp(packet.data, SERVERBROWSE_OLD_GETINFO, sizeof(SERVERBROWSE_OLD_GETINFO)) == 0) + { + server_send_serverinfo(&packet.address, -1); + } } } else -- cgit 1.4.1