-rps: open channel when inserting peer in view
[oweals/gnunet.git] / src / testbed / gnunet-daemon-latency-logger.c
index a33d00e92fb49f07c901f1bd547f2b687b6d2645..b2c7b1043bef5c58fc9f102347e9bda0bce084a7 100644 (file)
@@ -1,6 +1,6 @@
 /*
       This file is part of GNUnet
-      (C) 2008--2014 Christian Grothoff (and other contributing authors)
+      Copyright (C) 2008--2014 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.
 */
 
 /**
@@ -68,7 +68,8 @@ struct Entry
   struct GNUNET_PeerIdentity id;
 
   /**
-   * The last known value for latency
+   * The last known value for latency.
+   * FIXME: type!
    */
   unsigned int latency;
 
@@ -88,17 +89,12 @@ static struct sqlite3 *db;
 /**
  * Handle to the ATS performance subsystem
  */
-struct GNUNET_ATS_PerformanceHandle *ats;
+static struct GNUNET_ATS_PerformanceHandle *ats;
 
 /**
  * Prepared statement for inserting values into the database table
  */
-struct sqlite3_stmt *stmt_insert;
-
-/**
- * Shutdown task identifier
- */
-GNUNET_SCHEDULER_TaskIdentifier shutdown_task;
+static struct sqlite3_stmt *stmt_insert;
 
 
 /**
@@ -130,13 +126,11 @@ free_iterator (void *cls,
  * Shutdown
  *
  * @param cls NULL
- * @param tc task context from scheduler
  * @return
  */
 static void
-do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
+do_shutdown (void *cls)
 {
-  shutdown_task = GNUNET_SCHEDULER_NO_TASK;
   GNUNET_ATS_performance_done (ats);
   ats = NULL;
   if (NULL != stmt_insert)
@@ -166,8 +160,7 @@ do_shutdown (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
  *        #GNUNET_SYSERR if this address is no longer available for ATS
  * @param bandwidth_out assigned outbound bandwidth for the connection
  * @param bandwidth_in assigned inbound bandwidth for the connection
- * @param ats performance data for the address (as far as known)
- * @param ats_count number of performance records in 'ats'
+ * @param prop performance data for the address (as far as known)
  */
 static void
 addr_info_cb (void *cls,
@@ -175,8 +168,7 @@ addr_info_cb (void *cls,
               int address_active,
               struct GNUNET_BANDWIDTH_Value32NBO bandwidth_out,
               struct GNUNET_BANDWIDTH_Value32NBO bandwidth_in,
-              const struct GNUNET_ATS_Information *ats,
-              uint32_t ats_count)
+              const struct GNUNET_ATS_Properties *prop)
 {
   static const char *query_insert =
       "INSERT INTO ats_info("
@@ -189,8 +181,7 @@ addr_info_cb (void *cls,
       " datetime('now')"
       ");";
   struct Entry *entry;
-  int latency;
-  unsigned int cnt;
+  int latency; /* FIXME: type!? */
 
   if (NULL == address)
   {
@@ -201,15 +192,7 @@ addr_info_cb (void *cls,
   GNUNET_assert (NULL != db);
   if (GNUNET_YES != address_active)
     return;
-  for (cnt = 0; cnt < ats_count; cnt++)
-  {
-    if (GNUNET_ATS_QUALITY_NET_DELAY == ntohl (ats[cnt].type))
-      goto insert;
-  }
-  return;
-
- insert:
-  latency = (int) ntohl (ats[cnt].value);
+  latency = (int) prop->delay.rel_value_us;
   entry = NULL;
   if (GNUNET_YES == GNUNET_CONTAINER_multipeermap_contains (map,
                                                             &address->peer))
@@ -294,7 +277,7 @@ run (void *cls, char *const *args, const char *cfgfile,
     if (NULL != db)
     {
       LOG_SQLITE (db, NULL, GNUNET_ERROR_TYPE_ERROR, "sqlite_open_v2");
-      sqlite3_close (db);
+      GNUNET_break (SQLITE_OK == sqlite3_close (db));
     }
     else
       LOG (GNUNET_ERROR_TYPE_ERROR, "Cannot open sqlite file %s\n", dbfile);
@@ -309,8 +292,7 @@ run (void *cls, char *const *args, const char *cfgfile,
   dbfile = NULL;
   ats = GNUNET_ATS_performance_init (c, &addr_info_cb, NULL);
   map = GNUNET_CONTAINER_multipeermap_create (30, GNUNET_YES);
-  shutdown_task = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL,
-                                                &do_shutdown, NULL);
+  GNUNET_SCHEDULER_add_shutdown (&do_shutdown, NULL);
 }