about summary refs log tree commit diff
path: root/src/engine/server/es_server.c
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2008-09-03 20:03:01 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2008-09-03 20:03:01 +0000
commit53da3f0d40ff9eb171b3d8eaaeed148e9ddd2f8b (patch)
treed9014120bd015f7e3fcc4f2cf997321ba0494b70 /src/engine/server/es_server.c
parent37f3fa6c6efe231d5a172dbee6a50d63bf42b910 (diff)
downloadzcatch-53da3f0d40ff9eb171b3d8eaaeed148e9ddd2f8b.tar.gz
zcatch-53da3f0d40ff9eb171b3d8eaaeed148e9ddd2f8b.zip
added favorites. no saving of them yet however
Diffstat (limited to 'src/engine/server/es_server.c')
-rw-r--r--src/engine/server/es_server.c22
1 files changed, 9 insertions, 13 deletions
diff --git a/src/engine/server/es_server.c b/src/engine/server/es_server.c
index afd0b16b..c6ff39c9 100644
--- a/src/engine/server/es_server.c
+++ b/src/engine/server/es_server.c
@@ -785,7 +785,7 @@ static void server_process_client_packet(NETCHUNK *packet)
 	}
 }
 
-static void server_send_serverinfo(NETADDR *addr, int lan)
+static void server_send_serverinfo(NETADDR *addr, int token)
 {
 	NETCHUNK packet;
 	PACKER p;
@@ -801,16 +801,17 @@ static void server_send_serverinfo(NETADDR *addr, int lan)
 	}
 	
 	packer_reset(&p);
-	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_raw(&p, SERVERBROWSE_INFO, sizeof(SERVERBROWSE_INFO));
+
+	/* token */
+	str_format(buf, sizeof(buf), "%d", token);
+	packer_add_string(&p, buf, 6);
+	
 	packer_add_string(&p, mods_version(), 32);
 	packer_add_string(&p, config.sv_name, 64);
 	packer_add_string(&p, config.sv_map, 32);
 
 	/* gametype */
-	str_format(buf, sizeof(buf), "%d", browseinfo_gametype);
 	packer_add_string(&p, browseinfo_gametype, 16);
 
 	/* flags */
@@ -862,15 +863,10 @@ static void server_pump_network()
 			/* stateless */
 			if(!register_process_packet(&packet))
 			{
-				if(packet.data_size == sizeof(SERVERBROWSE_GETINFO) &&
+				if(packet.data_size == sizeof(SERVERBROWSE_GETINFO)+1 &&
 					memcmp(packet.data, SERVERBROWSE_GETINFO, sizeof(SERVERBROWSE_GETINFO)) == 0)
 				{
-					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);
+					server_send_serverinfo(&packet.address, ((unsigned char *)packet.data)[sizeof(SERVERBROWSE_GETINFO)]);
 				}
 			}
 		}