diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-10-17 21:16:23 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-10-17 21:16:23 +0000 |
| commit | a91fecae920e1b6d9ca3dbdbf6251c11bd751d7c (patch) | |
| tree | b65cc2df8ee5ad78fb819c0f985497528c5521db /src/engine/server | |
| parent | eb47aa385bb02d977c9ee759c2b7987951c16953 (diff) | |
| download | zcatch-a91fecae920e1b6d9ca3dbdbf6251c11bd751d7c.tar.gz zcatch-a91fecae920e1b6d9ca3dbdbf6251c11bd751d7c.zip | |
fixed fetching of server info and corrected some spelling errors
Diffstat (limited to 'src/engine/server')
| -rw-r--r-- | src/engine/server/es_server.c | 23 |
1 files changed, 19 insertions, 4 deletions
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 |