determine network scope for ATS even if we do not yet have a session and only have...
[oweals/gnunet.git] / src / transport / gnunet-service-transport_validation.h
index df2ef0ee82c66e956c31c40eeab5bf4f2c518201..6a807934ba9169983d3fce5de0a8d98bbc3cac52 100644 (file)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet.
-     (C) 2010,2011 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2010,2011 Christian Grothoff (and other contributing authors)
 
      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.
 */
 
 /**
@@ -52,39 +52,20 @@ GST_validation_stop (void);
  * Based on this, the validation module will measure latency for the
  * address more or less often.
  *
- * @param address the address
- * @param session the session
+ * @param address the address that we are now using (or not)
  * @param in_use #GNUNET_YES if we are now using the address for a connection,
  *               #GNUNET_NO if we are no longer using the address for a connection
  */
 void
 GST_validation_set_address_use (const struct GNUNET_HELLO_Address *address,
-                                struct Session *session,
                                 int in_use);
 
 
-/**
- * Query validation about the latest observed latency on a given
- * address.
- *
- * @param sender peer
- * @param address the address
- * @param session session
- * @return observed latency of the address, FOREVER if the address was
- *         never successfully validated
- */
-struct GNUNET_TIME_Relative
-GST_validation_get_address_latency (const struct GNUNET_PeerIdentity *sender,
-                                    const struct GNUNET_HELLO_Address *address,
-                                    struct Session *session);
-
-
 /**
  * Function called to notify transport users that a neighbour peer changed its
  * active address.
  *
  * @param cls closure
- * @param peer peer this update is about (never NULL)
  * @param address address (never NULL)
  * @param last_validation point in time when last validation was performed
  * @param valid_until point in time how long address is valid
@@ -93,7 +74,6 @@ GST_validation_get_address_latency (const struct GNUNET_PeerIdentity *sender,
  */
 typedef void
 (*GST_ValidationChangedCallback) (void *cls,
-                                  const struct GNUNET_PeerIdentity *peer,
                                   const struct GNUNET_HELLO_Address *address,
                                   struct GNUNET_TIME_Absolute last_validation,
                                   struct GNUNET_TIME_Absolute valid_until,
@@ -151,6 +131,15 @@ int
 GST_validation_handle_hello (const struct GNUNET_MessageHeader *hello);
 
 
+/**
+ * Validate an individual address.
+ *
+ * @param address address we should try to validate
+ */
+void
+GST_validation_handle_address (const struct GNUNET_HELLO_Address *address);
+
+
 /**
  * Function called for each address (or address status change) that
  * the validation module is aware of (for the given target).
@@ -166,7 +155,6 @@ GST_validation_handle_hello (const struct GNUNET_MessageHeader *hello);
  */
 typedef void
 (*GST_ValidationAddressCallback) (void *cls,
-                                  const struct GNUNET_CRYPTO_EddsaPublicKey *public_key,
                                   struct GNUNET_TIME_Absolute valid_until,
                                   struct GNUNET_TIME_Absolute validation_block,
                                   const struct GNUNET_HELLO_Address *address);