Drop MAXHOSTNAMELEN dependency

Samuel Thibault samuel.thibault@ens-lyon.org
Sat Aug 4 21:17:00 GMT 2007


Samuel Thibault, le Tue 24 Jul 2007 23:13:54 +0200, a écrit :
> Some systems don't have such hard limit as MAXHOSTNAMELEN, here is a
> patch to fix gcc on them.

Could someone apply it?

Samuel
-------------- next part --------------
libjava/ChangeLog
2007-07-24  Samuel Thibault  <samuel.thibault@ens-lyon.org>

	* java/net/natVMInetAddressPosix.cc
	(java::net::VMInetAddress::getLocalHostname) [!MAXHOSTNAMELEN]:
	Allocate buffer dynamically.

--- libjava/java/net/natVMInetAddressPosix.cc.orig	2007-01-26 15:27:19.000000000 +0000
+++ libjava/java/net/natVMInetAddressPosix.cc	2007-01-26 15:45:53.000000000 +0000
@@ -47,10 +47,25 @@ java::net::VMInetAddress::getLocalHostname ()
 {
   char *chars;
 #ifdef HAVE_GETHOSTNAME
+#ifdef MAXHOSTNAMELEN
   char buffer[MAXHOSTNAMELEN];
   if (gethostname (buffer, MAXHOSTNAMELEN))
     return NULL;
   chars = buffer;
+#else
+  size_t size = 256;
+  while (1) {
+    char buffer[size];
+    if (!gethostname (buffer, size-1))
+      {
+	buffer[size-1] = 0;
+	return JvNewStringUTF (buffer);
+      }
+    else if (errno != ENAMETOOLONG)
+      return NULL;
+    size *= 2;
+  }
+#endif
 #elif HAVE_UNAME
   struct utsname stuff;
   if (uname (&stuff) != 0)


More information about the Java-patches mailing list