diff options
| author | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-01-20 15:19:33 +0000 |
|---|---|---|
| committer | Magnus Auvinen <magnus.auvinen@gmail.com> | 2008-01-20 15:19:33 +0000 |
| commit | 438dfeb0ca817613bcffe7a3b4dec028bc64925d (patch) | |
| tree | 2f234b870bba6e0e8199557a98d62ccc3db4f118 /src/engine/server | |
| parent | 805a74c1e4e487c1fabafc57858cd591e6dfed9d (diff) | |
| download | zcatch-438dfeb0ca817613bcffe7a3b4dec028bc64925d.tar.gz zcatch-438dfeb0ca817613bcffe7a3b4dec028bc64925d.zip | |
fixed bug when switching fast from internet and lan tabs
Diffstat (limited to 'src/engine/server')
| -rw-r--r-- | src/engine/server/es_server.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/engine/server/es_server.c b/src/engine/server/es_server.c index 5c1c67fb..d781c8da 100644 --- a/src/engine/server/es_server.c +++ b/src/engine/server/es_server.c @@ -662,7 +662,7 @@ static void server_process_client_packet(NETPACKET *packet) } } -static void server_send_serverinfo(NETADDR4 *addr) +static void server_send_serverinfo(NETADDR4 *addr, int lan) { NETPACKET packet; PACKER p; @@ -678,7 +678,10 @@ static void server_send_serverinfo(NETADDR4 *addr) } packer_reset(&p); - packer_add_raw(&p, SERVERBROWSE_INFO, sizeof(SERVERBROWSE_INFO)); + if(lan) + packer_add_raw(&p, SERVERBROWSE_INFO_LAN, sizeof(SERVERBROWSE_INFO_LAN)); + else + packer_add_raw(&p, SERVERBROWSE_INFO, sizeof(SERVERBROWSE_INFO)); packer_add_string(&p, mods_version(), 32); packer_add_string(&p, config.sv_name, 64); packer_add_string(&p, config.sv_map, 32); @@ -768,7 +771,12 @@ static void server_pump_network() if(packet.data_size == sizeof(SERVERBROWSE_GETINFO) && memcmp(packet.data, SERVERBROWSE_GETINFO, sizeof(SERVERBROWSE_GETINFO)) == 0) { - server_send_serverinfo(&packet.address); + server_send_serverinfo(&packet.address, 0); + } + else if(packet.data_size == sizeof(SERVERBROWSE_GETINFO_LAN) && + memcmp(packet.data, SERVERBROWSE_GETINFO_LAN, sizeof(SERVERBROWSE_GETINFO_LAN)) == 0) + { + server_send_serverinfo(&packet.address, 1); } else if(packet.data_size == sizeof(SERVERBROWSE_FWCHECK) && memcmp(packet.data, SERVERBROWSE_FWCHECK, sizeof(SERVERBROWSE_FWCHECK)) == 0) |