Browse Source

Reverting r12212. As expected, Linux is incompatible.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12213 54d463be-8e91-2dee-dedb-b68131a5f0ec
ultramage 17 years ago
parent
commit
3934f11180
2 changed files with 6 additions and 3 deletions
  1. 0 3
      Changelog-Trunk.txt
  2. 6 0
      src/common/socket.c

+ 0 - 3
Changelog-Trunk.txt

@@ -3,9 +3,6 @@ Date	Added
 AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
-2008/02/17
-	* Made unix interface enumeration work with dynamic sockaddr lengths
-	  (BSD, for example). Complain if it doesn't compile. (bugreport:765)
 2008/02/14
 	* Removed/replaced all calls to map_getallusers (followup to r12195)
 	* Trashed @whozeny (from r269) [ultramage]

+ 6 - 0
src/common/socket.c

@@ -1153,6 +1153,8 @@ int socket_getips(uint32* ips, int max)
 
 		fd = sSocket(AF_INET, SOCK_STREAM, 0);
 
+		memset(buf, 0x00, sizeof(buf));
+
 		// The ioctl call will fail with Invalid Argument if there are more
 		// interfaces than will fit in the buffer
 		ic.ifc_len = sizeof(buf);
@@ -1173,7 +1175,11 @@ int socket_getips(uint32* ips, int max)
 					if( ad != INADDR_LOOPBACK && ad != INADDR_ANY )
 						ips[num++] = (uint32)ad;
 				}
+	#if (defined(BSD) && BSD >= 199103) || defined(_AIX) || defined(__APPLE__)
 				pos += ir->ifr_addr.sa_len + sizeof(ir->ifr_name);
+	#else// not AIX or APPLE
+				pos += sizeof(struct ifreq);
+	#endif//not AIX or APPLE
 			}
 		}
 		sClose(fd);