gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r10866 - in gnunet/src: hostlist include util


From: gnunet
Subject: [GNUnet-SVN] r10866 - in gnunet/src: hostlist include util
Date: Fri, 9 Apr 2010 22:24:34 +0200

Author: holindho
Date: 2010-04-09 22:24:34 +0200 (Fri, 09 Apr 2010)
New Revision: 10866

Modified:
   gnunet/src/hostlist/hostlist-server.c
   gnunet/src/include/gnunet_os_lib.h
   gnunet/src/util/resolver_api.c
Log:
rehash since gethostname is used in resolver as well


Modified: gnunet/src/hostlist/hostlist-server.c
===================================================================
--- gnunet/src/hostlist/hostlist-server.c       2010-04-09 16:21:37 UTC (rev 
10865)
+++ gnunet/src/hostlist/hostlist-server.c       2010-04-09 20:24:34 UTC (rev 
10866)
@@ -105,11 +105,6 @@
 };
 
 /**
- * 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
@@ -405,11 +400,11 @@
   unsigned long long port;
 
   char *uri;
-  char hostname[max_hostname_length + 1];
+  char hostname[GNUNET_OS_get_hostname_max_length() + 1];
   char *protocol = "http://";;
   char *port_s = GNUNET_malloc(6 * sizeof(char));
 
-  if (0 != gethostname (hostname, sizeof (hostname)))
+  if (0 != gethostname (hostname, sizeof (hostname) - 1))
   {
     GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR,
         "Could not get system's hostname, unable to create advertisement 
message");
@@ -618,16 +613,6 @@
 {
   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/gnunet_os_lib.h
===================================================================
--- gnunet/src/include/gnunet_os_lib.h  2010-04-09 16:21:37 UTC (rev 10865)
+++ gnunet/src/include/gnunet_os_lib.h  2010-04-09 20:24:34 UTC (rev 10866)
@@ -155,6 +155,18 @@
                                         proc, void *proc_cls);
 
 /**
+ * @brief Get maximum string length returned by gethostname()
+ */
+#if HAVE_SYSCONF && defined(_SC_HOST_NAME_MAX)
+#define GNUNET_OS_get_hostname_max_length() ({ int __sc_tmp = 
sysconf(_SC_HOST_NAME_MAX); __sc_tmp <= 0 ? 255 : __sc_tmp; })
+#elif defined(HOST_NAME_MAX)
+#define GNUNET_OS_get_hostname_max_length() HOST_NAME_MAX
+#else
+#define GNUNET_OS_get_hostname_max_length() 255
+#endif
+
+
+/**
  * Get the current CPU load.
  *
  * @param cfg to determine acceptable load level (LOAD::MAXCPULOAD)

Modified: gnunet/src/util/resolver_api.c
===================================================================
--- gnunet/src/util/resolver_api.c      2010-04-09 16:21:37 UTC (rev 10865)
+++ gnunet/src/util/resolver_api.c      2010-04-09 20:24:34 UTC (rev 10866)
@@ -25,6 +25,7 @@
  */
 #include "platform.h"
 #include "gnunet_getopt_lib.h"
+#include "gnunet_os_lib.h"
 #include "gnunet_client_lib.h"
 #include "gnunet_protocols.h"
 #include "gnunet_resolver_service.h"
@@ -686,7 +687,7 @@
                                   GNUNET_RESOLVER_AddressCallback callback,
                                   void *cls)
 {
-  char hostname[MAX_HOSTNAME];
+  char hostname[GNUNET_OS_get_hostname_max_length() + 1];
 
   check_config (cfg);
   if (0 != gethostname (hostname, sizeof (hostname) - 1))





reply via email to

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