about summary refs log tree commit diff
path: root/src/engine/server
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2008-01-20 15:19:33 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2008-01-20 15:19:33 +0000
commit438dfeb0ca817613bcffe7a3b4dec028bc64925d (patch)
tree2f234b870bba6e0e8199557a98d62ccc3db4f118 /src/engine/server
parent805a74c1e4e487c1fabafc57858cd591e6dfed9d (diff)
downloadzcatch-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.c14
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)