gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r10862 - in gnunet: . src/hostlist src/include


From: gnunet
Subject: [GNUnet-SVN] r10862 - in gnunet: . src/hostlist src/include
Date: Fri, 9 Apr 2010 17:18:42 +0200

Author: holindho
Date: 2010-04-09 17:18:42 +0200 (Fri, 09 Apr 2010)
New Revision: 10862

Modified:
   gnunet/configure.ac
   gnunet/src/hostlist/hostlist-server.c
   gnunet/src/include/platform.h
Log:
better: sysconf seems to be the preferred way


Modified: gnunet/configure.ac
===================================================================
--- gnunet/configure.ac 2010-04-09 14:55:36 UTC (rev 10861)
+++ gnunet/configure.ac 2010-04-09 15:18:42 UTC (rev 10862)
@@ -573,7 +573,7 @@
 AC_HEADER_SYS_WAIT
 AC_TYPE_OFF_T
 AC_TYPE_UID_T
-AC_CHECK_FUNCS([floor gethostname memmove rmdir strncasecmp strrchr strtol 
atoll dup2 fdatasync ftruncate gettimeofday memset mkdir mkfifo select socket 
strcasecmp strchr strdup strerror strstr clock_gettime getrusage rand uname 
setlocale getcwd mktime gmtime_r gmtime strlcpy strlcat ftruncate stat64 sbrk 
mmap mremap setrlimit gethostbyaddr initgroups getifaddrs freeifaddrs 
getnameinfo getaddrinfo inet_ntoa localtime_r nl_langinfo putenv realpath 
strndup gethostbyname2 gethostbyname])
+AC_CHECK_FUNCS([floor gethostname memmove rmdir strncasecmp strrchr strtol 
atoll dup2 fdatasync ftruncate gettimeofday memset mkdir mkfifo select socket 
strcasecmp strchr strdup strerror strstr clock_gettime getrusage rand uname 
setlocale getcwd mktime gmtime_r gmtime strlcpy strlcat ftruncate stat64 sbrk 
mmap mremap setrlimit sysconf gethostbyaddr initgroups getifaddrs freeifaddrs 
getnameinfo getaddrinfo inet_ntoa localtime_r nl_langinfo putenv realpath 
strndup gethostbyname2 gethostbyname])
 
 # restore LIBS
 LIBS=$SAVE_LIBS

Modified: gnunet/src/hostlist/hostlist-server.c
===================================================================
--- gnunet/src/hostlist/hostlist-server.c       2010-04-09 14:55:36 UTC (rev 
10861)
+++ gnunet/src/hostlist/hostlist-server.c       2010-04-09 15:18:42 UTC (rev 
10862)
@@ -105,6 +105,11 @@
 };
 
 /**
+ * Local max hostname length (some platforms use sysconf() for it)
+ */
+static int max_hostname_length;
+
+/**
  * Task that will produce a new response object.
  */
 static void
@@ -400,11 +405,11 @@
   unsigned long long port;
 
   char *uri;
-  char hostname[HOST_NAME_MAX];
+  char hostname[max_hostname_length + 1];
   char *protocol = "http://";;
   char *port_s = GNUNET_malloc(6 * sizeof(char));
 
-  if (0 != gethostname (hostname, sizeof (hostname) - 1))
+  if (0 != gethostname (hostname, sizeof (hostname)))
   {
     GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR,
         "Could not get system's hostname, unable to create advertisement 
message");
@@ -613,6 +618,16 @@
 {
   unsigned long long port;
 
+#if HAVE_SYSCONF && defined(_SC_HOST_NAME_MAX)
+  max_hostname_length = sysconf(_SC_HOST_NAME_MAX);
+  if (-1 == max_hostname_length)
+    return GNUNET_SYSERR;
+#elif defined(HOST_NAME_MAX)
+  max_hostname_length = HOST_NAME_MAX;
+#else
+  max_hostname_length = 255; /* sensible default? */
+#endif
+
   sched = s;
   cfg = c;
   stats = st;

Modified: gnunet/src/include/platform.h
===================================================================
--- gnunet/src/include/platform.h       2010-04-09 14:55:36 UTC (rev 10861)
+++ gnunet/src/include/platform.h       2010-04-09 15:18:42 UTC (rev 10862)
@@ -191,17 +191,11 @@
 #endif
 
 #ifdef FREEBSD
-#ifndef HOST_NAME_MAX
-#define HOST_NAME_MAX MAXHOSTNAMELEN
-#endif
 #define __BYTE_ORDER BYTE_ORDER
 #define __BIG_ENDIAN BIG_ENDIAN
 #endif
 
 #ifdef DARWIN
-#ifndef HOST_NAME_MAX
-#define HOST_NAME_MAX MAXHOSTNAMELEN
-#endif
 #define __BYTE_ORDER BYTE_ORDER
 #define __BIG_ENDIAN BIG_ENDIAN
  /* not available on darwin, override configure */





reply via email to

[Prev in Thread] Current Thread [Next in Thread]