OSDN Git Service

2007-08-08 Samuel Thibault <samuel.thibault@ens-lyon.org>
[pf3gnuchains/gcc-fork.git] / libjava / java / net / natVMInetAddressPosix.cc
index 7fbe1bb..bc25f36 100644 (file)
@@ -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)