From: Bart Polot Date: Wed, 5 Feb 2014 17:24:24 +0000 (+0000) Subject: - remove MESH own block code (MESH uses DHT_HELLO now) X-Git-Tag: initial-import-from-subversion-38251~4779 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=42921ffe3abed4cb30ded33f74e239b8f05a557d;p=oweals%2Fgnunet.git - remove MESH own block code (MESH uses DHT_HELLO now) --- diff --git a/src/include/block_mesh.h b/src/include/block_mesh.h deleted file mode 100644 index 7e6c1583b..000000000 --- a/src/include/block_mesh.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - This file is part of GNUnet. - (C) 2012,2013 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 - by the Free Software Foundation; either version 3, 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. -*/ - -/** - * @file include/block_mesh.h - * @brief Mesh block formats. - * @author Bartlomiej Polot - */ -#ifndef BLOCK_MESH_H -#define BLOCK_MESH_H - -#ifdef __cplusplus -extern "C" -{ -#if 0 /* keep Emacsens' auto-indent happy */ -} -#endif -#endif - -#include "gnunet_util_lib.h" -#include "gnunet_mesh_service.h" -#include - -/** - * @brief peer block (peer id) - */ -struct PBlock -{ - /** - * Identity of the peer - */ - struct GNUNET_PeerIdentity id; - -}; - -#if 0 /* keep Emacsens' auto-indent happy */ -{ -#endif -#ifdef __cplusplus -} -#endif - -#endif \ No newline at end of file diff --git a/src/include/gnunet_block_lib.h b/src/include/gnunet_block_lib.h index 5f3bbda96..0da8c03f4 100644 --- a/src/include/gnunet_block_lib.h +++ b/src/include/gnunet_block_lib.h @@ -80,7 +80,7 @@ enum GNUNET_BLOCK_Type /** * Type of a block that contains a HELLO for a peer (for - * DHT find-peer operations). + * DHT and MESH find-peer operations). */ GNUNET_BLOCK_TYPE_DHT_HELLO = 7, @@ -106,11 +106,6 @@ enum GNUNET_BLOCK_Type */ GNUNET_BLOCK_TYPE_GNS_NAMERECORD = 11, - /** - * Block for storing mesh peers - */ - GNUNET_BLOCK_TYPE_MESH_PEER = 20, - /** * Block to store a mesh regex state */ diff --git a/src/mesh/plugin_block_mesh.c b/src/mesh/plugin_block_mesh.c deleted file mode 100644 index ae8324885..000000000 --- a/src/mesh/plugin_block_mesh.c +++ /dev/null @@ -1,171 +0,0 @@ -/* - This file is part of GNUnet - (C) 2012,2013 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 - by the Free Software Foundation; either version 3, 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. -*/ - -/** - * @file mesh/plugin_block_mesh.c - * @brief blocks used for mesh peer discovery - * @author Bartlomiej Polot - */ - -#include "platform.h" -#include "gnunet_block_plugin.h" -#include "block_mesh.h" - -/** - * Number of bits we set per entry in the bloomfilter. - * Do not change! - */ -#define BLOOMFILTER_K 16 - - -/** - * Function called to validate a reply or a request. For - * request evaluation, simply pass "NULL" for the reply_block. - * Note that it is assumed that the reply has already been - * matched to the key (and signatures checked) as it would - * be done with the "get_key" function. - * - * @param cls closure - * @param type block type - * @param query original query (hash) - * @param bf pointer to bloom filter associated with query; possibly updated (!) - * @param bf_mutator mutation value for bf - * @param xquery extrended query data (can be NULL, depending on type) - * @param xquery_size number of bytes in xquery - * @param reply_block response to validate - * @param reply_block_size number of bytes in reply block - * @return characterization of result - */ -static enum GNUNET_BLOCK_EvaluationResult -block_plugin_mesh_evaluate (void *cls, enum GNUNET_BLOCK_Type type, - const struct GNUNET_HashCode * query, - struct GNUNET_CONTAINER_BloomFilter **bf, - int32_t bf_mutator, const void *xquery, - size_t xquery_size, const void *reply_block, - size_t reply_block_size) -{ - struct GNUNET_HashCode chash; - struct GNUNET_HashCode mhash; - - switch (type) - { - case GNUNET_BLOCK_TYPE_MESH_PEER: - if (0 != xquery_size) - { - GNUNET_break_op (0); - return GNUNET_BLOCK_EVALUATION_REQUEST_INVALID; - } - if (NULL == reply_block) - return GNUNET_BLOCK_EVALUATION_REQUEST_VALID; - if (sizeof (struct PBlock) != reply_block_size) - return GNUNET_BLOCK_EVALUATION_RESULT_INVALID; - if (NULL != bf) - { - GNUNET_CRYPTO_hash (reply_block, reply_block_size, &chash); - GNUNET_BLOCK_mingle_hash (&chash, bf_mutator, &mhash); - if (NULL != *bf) - { - if (GNUNET_YES == GNUNET_CONTAINER_bloomfilter_test (*bf, &mhash)) - return GNUNET_BLOCK_EVALUATION_OK_DUPLICATE; - } - else - { - *bf = GNUNET_CONTAINER_bloomfilter_init (NULL, 8, BLOOMFILTER_K); - } - GNUNET_CONTAINER_bloomfilter_add (*bf, &mhash); - } - return GNUNET_BLOCK_EVALUATION_OK_LAST; - - default: - GNUNET_break(0); - return GNUNET_BLOCK_EVALUATION_TYPE_NOT_SUPPORTED; - } -} - - -/** - * Function called to obtain the key for a block. - * - * @param cls closure - * @param type block type - * @param block block to get the key for - * @param block_size number of bytes in @a block - * @param key set to the key (query) for the given block - * @return #GNUNET_OK on success, #GNUNET_SYSERR if type not supported - * (or if extracting a key from a block of this type does not work) - */ -static int -block_plugin_mesh_get_key (void *cls, enum GNUNET_BLOCK_Type type, - const void *block, size_t block_size, - struct GNUNET_HashCode * key) -{ - const struct PBlock *pb; - pb = block; - - switch (type) - { - case GNUNET_BLOCK_TYPE_MESH_PEER: - if (sizeof (struct PBlock) != block_size) - return GNUNET_SYSERR; - GNUNET_CRYPTO_hash (&pb->id, - sizeof (struct GNUNET_PeerIdentity), - key); - return GNUNET_OK; - default: - GNUNET_break (0); - return GNUNET_SYSERR; - } -} - - -/** - * Entry point for the plugin. - */ -void * -libgnunet_plugin_block_mesh_init (void *cls) -{ - static enum GNUNET_BLOCK_Type types[] = - { - GNUNET_BLOCK_TYPE_MESH_PEER, - GNUNET_BLOCK_TYPE_ANY /* end of list */ - }; - struct GNUNET_BLOCK_PluginFunctions *api; - - api = GNUNET_new (struct GNUNET_BLOCK_PluginFunctions); - api->evaluate = &block_plugin_mesh_evaluate; - api->get_key = &block_plugin_mesh_get_key; - api->types = types; - return api; -} - - -/** - * Exit point from the plugin. - */ -void * -libgnunet_plugin_block_mesh_done (void *cls) -{ - struct GNUNET_TRANSPORT_PluginFunctions *api = cls; - - GNUNET_free (api); - return NULL; -} - -/* end of plugin_block_mesh.c */