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