Browse Source

Replace IPv4 address parser to use the union

NX 6 years ago
parent
commit
14e8a3afcb
1 changed files with 15 additions and 15 deletions
  1. 15 15
      Source/Native/enet.h

+ 15 - 15
Source/Native/enet.h

@@ -178,17 +178,6 @@
 extern "C" {
 #endif
 
-	#ifndef IN4ADDR
-	#define IN4ADDR
-
-	struct in4_addr {
-		uint8_t zeros[10];
-		uint16_t ffff;
-		struct in_addr ip;
-	};
-
-	#endif
-
 /*
 =======================================================================
 
@@ -240,6 +229,17 @@ extern "C" {
 	#define enet_list_front(list) ((void*)(list)->sentinel.next)
 	#define enet_list_back(list) ((void*)(list)->sentinel.previous)
 
+	#ifndef IN4ADDR
+	#define IN4ADDR
+
+	struct in4_addr {
+		uint8_t zeros[10];
+		uint16_t ffff;
+		struct in_addr ip;
+	};
+
+	#endif
+
 /*
 =======================================================================
 
@@ -4341,10 +4341,10 @@ extern "C" {
 				if (result->ai_family == AF_INET) {
 					struct sockaddr_in* sin = (struct sockaddr_in*)result->ai_addr;
 
-					((enet_uint32*)&address->ipv6.s6_addr)[0] = 0;
-					((enet_uint32*)&address->ipv6.s6_addr)[1] = 0;
-					((enet_uint32*)&address->ipv6.s6_addr)[2] = ENET_HOST_TO_NET_32(0xFFFF);
-					((enet_uint32*)&address->ipv6.s6_addr)[3] = sin->sin_addr.s_addr;
+					memset(address, 0, sizeof(address->ipv4.zeros));
+
+					address->ipv4.ffff = 0xFFFF;
+					address->ipv4.ip.s_addr = sin->sin_addr.s_addr;
 
 					freeaddrinfo(resultList);