commented out wrong message type
[oweals/gnunet.git] / src / dht / gnunet-service-dht_nse.c
index 4711c9c3171cede683dd31ab0a44e6dd9f1709fe..da4aae60c2cf13a24c327d129fb82f5cb9efce25 100644 (file)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     (C) 2009, 2010, 2011 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2009, 2010, 2011 GNUnet e.V.
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -14,8 +14,8 @@
 
      You should have received a copy of the GNU General Public License
      along with GNUnet; see the file COPYING.  If not, write to the
-     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-     Boston, MA 02111-1307, USA.
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
 */
 
 /**
@@ -23,6 +23,8 @@
  * @brief GNUnet DHT integration with NSE
  * @author Christian Grothoff
  */
+#include "platform.h"
+#include "gnunet_nse_service.h"
 #include "gnunet-service-dht.h"
 #include "gnunet-service-dht_nse.h"
 
@@ -53,29 +55,59 @@ static void
 update_network_size_estimate (void *cls, struct GNUNET_TIME_Absolute timestamp,
                               double logestimate, double std_dev)
 {
-  log_of_network_size_estimate = logestimate;
+  GNUNET_STATISTICS_update (GDS_stats,
+                            gettext_noop ("# Network size estimates received"),
+                            1, GNUNET_NO);
+  /* do not allow estimates < 0.5 */
+  log_of_network_size_estimate = GNUNET_MAX (0.5, logestimate);
 }
 
 
+/**
+ * Return the log of the current network size estimate.
+ *
+ * @return log of NSE
+ */
 double
-GDS_nse_get ()
+GDS_NSE_get ()
 {
   return log_of_network_size_estimate;
 }
 
 
+/**
+ * Initialize NSE subsystem.
+ */
 void
-GDS_nse_init ()
+GDS_NSE_init ()
 {
+  unsigned long long hops;
+
+  if ( (GNUNET_YES ==
+       GNUNET_CONFIGURATION_have_value (GDS_cfg,
+                                        "dht",
+                                        "FORCE_NSE")) &&
+       (GNUNET_OK ==
+       GNUNET_CONFIGURATION_get_value_number (GDS_cfg,
+                                              "dht",
+                                              "FORCE_NSE",
+                                              &hops)) )
+  {
+    log_of_network_size_estimate = (double) hops;
+    return;
+  }
   nse = GNUNET_NSE_connect (GDS_cfg, &update_network_size_estimate, NULL);
 }
 
 
+/**
+ * Shutdown NSE subsystem.
+ */
 void
-GDS_nse_done ()
-{  
+GDS_NSE_done ()
+{
   if (NULL != nse)
-    {
+  {
     GNUNET_NSE_disconnect (nse);
     nse = NULL;
   }