about summary refs log tree commit diff
path: root/src/engine/client
diff options
context:
space:
mode:
authorMagnus Auvinen <magnus.auvinen@gmail.com>2008-08-31 19:29:09 +0000
committerMagnus Auvinen <magnus.auvinen@gmail.com>2008-08-31 19:29:09 +0000
commit62d9ff05d6cc0ae1cd952d51a168f6ffcf6abf60 (patch)
treea8c6e49093df4fabdc5380149d73b8e7b9fcfc43 /src/engine/client
parent0a48454a554f8aa221a54b694b32b3004b9f6fd7 (diff)
downloadzcatch-62d9ff05d6cc0ae1cd952d51a168f6ffcf6abf60.tar.gz
zcatch-62d9ff05d6cc0ae1cd952d51a168f6ffcf6abf60.zip
fixed connection less packets. they behave like the old version so version server and master servers still work
Diffstat (limited to 'src/engine/client')
-rw-r--r--src/engine/client/ec_client.c22
1 files changed, 13 insertions, 9 deletions
diff --git a/src/engine/client/ec_client.c b/src/engine/client/ec_client.c
index 409534d1..7445974f 100644
--- a/src/engine/client/ec_client.c
+++ b/src/engine/client/ec_client.c
@@ -711,19 +711,23 @@ static void client_process_packet(NETCHUNK *packet)
 			memcmp(packet->data, SERVERBROWSE_LIST, sizeof(SERVERBROWSE_LIST)) == 0)
 		{
 			int size = packet->data_size-sizeof(SERVERBROWSE_LIST);
-			int num = size/sizeof(NETADDR);
-			NETADDR *addrs = (NETADDR *)((char*)packet->data+sizeof(SERVERBROWSE_LIST));
+			int num = size/sizeof(MASTERSRV_ADDR);
+			MASTERSRV_ADDR *addrs = (MASTERSRV_ADDR *)((char*)packet->data+sizeof(SERVERBROWSE_LIST));
 			int i;
-			
+
 			for(i = 0; i < num; i++)
 			{
-				NETADDR addr = addrs[i];
+				NETADDR addr;
 				SERVER_INFO info = {0};
-
-#if defined(CONF_ARCH_ENDIAN_BIG)
-				const char *tmp = (const char *)&addr.port;
-				addr.port = (tmp[1]<<8) | tmp[0];
-#endif
+				
+				/* convert address */
+				mem_zero(&addr, sizeof(addr));
+				addr.type = NETTYPE_IPV4;
+				addr.ip[0] = addrs[i].ip[0];
+				addr.ip[1] = addrs[i].ip[1];
+				addr.ip[2] = addrs[i].ip[2];
+				addr.ip[3] = addrs[i].ip[3];
+				addr.port = (addrs[i].port[1]<<8) | addrs[i].port[0];
 
 				info.latency = 999;
 				str_format(info.address, sizeof(info.address), "%d.%d.%d.%d:%d",