/*
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
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.
*/
/**
struct GNUNET_PeerIdentity id;
/**
- * The last known value for latency
+ * The last known value for latency.
+ * FIXME: type!
*/
unsigned int latency;
/**
* 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
- */
-struct GNUNET_SCHEDULER_Task * shutdown_task;
+static struct sqlite3_stmt *stmt_insert;
/**
* 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 = NULL;
GNUNET_ATS_performance_done (ats);
ats = NULL;
if (NULL != stmt_insert)
* #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,
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("
" datetime('now')"
");";
struct Entry *entry;
- int latency;
- unsigned int cnt;
+ int latency; /* FIXME: type!? */
if (NULL == address)
{
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))
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);
}