X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Ftransport%2Fgnunet-service-transport_validation.h;h=8d11413db77012a668be4fbd25a781a284fde3b3;hb=ec50a665dc884f7997419d0351ae8ade9c1aeabe;hp=df2ef0ee82c66e956c31c40eeab5bf4f2c518201;hpb=658f44879747d23c92e30ca004b04e2dddac73d8;p=oweals%2Fgnunet.git diff --git a/src/transport/gnunet-service-transport_validation.h b/src/transport/gnunet-service-transport_validation.h index df2ef0ee8..8d11413db 100644 --- a/src/transport/gnunet-service-transport_validation.h +++ b/src/transport/gnunet-service-transport_validation.h @@ -1,21 +1,19 @@ /* This file is part of GNUnet. - (C) 2010,2011 Christian Grothoff (and other contributing authors) + Copyright (C) 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 - by the Free Software Foundation; either version 3, or (at your - option) any later version. + GNUnet is free software: you can redistribute it and/or modify it + under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, + or (at your option) any later version. GNUnet is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - 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. + Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . */ /** @@ -52,65 +50,15 @@ 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 - * @param next_validation point in time when next validation will be performed - * @param state state of validation notification - */ -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, - struct GNUNET_TIME_Absolute next_validation, - enum GNUNET_TRANSPORT_ValidationState state); - - -/** - * Iterate over all iteration entries - * - * @param cb function to call - * @param cb_cls closure for @a cb - */ -void -GST_validation_iterate (GST_ValidationChangedCallback cb, void *cb_cls); - - /** * We've received a PING. If appropriate, generate a PONG. * @@ -124,7 +72,7 @@ int GST_validation_handle_ping (const struct GNUNET_PeerIdentity *sender, const struct GNUNET_MessageHeader *hdr, const struct GNUNET_HELLO_Address *sender_address, - struct Session *session); + struct GNUNET_ATS_Session *session); /** @@ -151,6 +99,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 +123,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);