This file is part of GNUnet.
Copyright (C) 2013, 2014, 2016 GNUnet e.V.
- GNUnet is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public Licerevocation 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 Licerevocation for more details.
+ 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 <http://www.gnu.org/licenses/>.
- You should have received a copy of the GNU General Public Licerevocation
- along with GNUnet; see the file COPYING. If not, write to the
- Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
+ SPDX-License-Identifier: AGPL3.0-or-later
*/
/**
#include "platform.h"
#include <math.h>
#include "gnunet_util_lib.h"
+#include "gnunet_block_lib.h"
#include "gnunet_constants.h"
#include "gnunet_protocols.h"
#include "gnunet_signatures.h"
* @param client the new client
* @param app_cls must alias @a client
*/
-static void
+static void
client_disconnect_cb (void *cls,
struct GNUNET_SERVICE_Client *client,
void *app_cls)
GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY));
/* add to set for future connections */
e.size = htons (rm->header.size);
- e.element_type = 0;
+ e.element_type = GNUNET_BLOCK_TYPE_REVOCATION;
e.data = rm;
if (GNUNET_OK !=
GNUNET_SET_add_element (revocation_set,
*
* @param cls closure
* @param element a result element, only valid if status is #GNUNET_SET_STATUS_OK
+ * @param current_size current set size
* @param status see `enum GNUNET_SET_Status`
*/
static void
add_revocation (void *cls,
const struct GNUNET_SET_Element *element,
+ uint64_t current_size,
enum GNUNET_SET_Status status)
{
struct PeerEntry *peer_entry = cls;
GNUNET_break_op (0);
return;
}
- if (0 != element->element_type)
+ if (GNUNET_BLOCK_TYPE_REVOCATION != element->element_type)
{
GNUNET_STATISTICS_update (stats,
gettext_noop ("# unsupported revocations received via set union"),
- 1, GNUNET_NO);
+ 1,
+ GNUNET_NO);
return;
}
rm = element->data;
"Starting set exchange with peer `%s'\n",
GNUNET_i2s (&peer_entry->id));
peer_entry->transmit_task = NULL;
+ GNUNET_assert (NULL == peer_entry->so);
peer_entry->so = GNUNET_SET_prepare (&peer_entry->id,
&revocation_set_union_app_id,
NULL,
GNUNET_SET_RESULT_ADDED,
+ (struct GNUNET_SET_Option[]) {{ 0 }},
&add_revocation,
peer_entry);
if (GNUNET_OK !=
struct GNUNET_HashCode my_hash;
struct GNUNET_HashCode peer_hash;
- if (0 == memcmp (peer,
- &my_identity,
- sizeof (my_identity)))
+ if (0 == GNUNET_memcmp (peer,
+ &my_identity))
{
return NULL;
}
void *internal_cls)
{
struct PeerEntry *peer_entry = internal_cls;
-
- if (0 == memcmp (peer,
- &my_identity,
- sizeof (my_identity)))
+
+ if (0 == GNUNET_memcmp (peer,
+ &my_identity))
return;
- GNUNET_assert (NULL != peer_entry);
+ GNUNET_assert (NULL != peer_entry);
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Peer `%s' disconnected from us\n",
GNUNET_i2s (peer));
{
peer_entry = new_peer_entry (other_peer);
}
+ if (NULL != peer_entry->so)
+ {
+ GNUNET_break_op (0);
+ return;
+ }
peer_entry->so = GNUNET_SET_accept (request,
GNUNET_SET_RESULT_ADDED,
+ (struct GNUNET_SET_Option[]) {{ 0 }},
&add_revocation,
peer_entry);
if (GNUNET_OK !=
GNUNET_SET_commit (peer_entry->so,
revocation_set))
{
- GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
- _("SET service crashed, terminating revocation service\n"));
+ GNUNET_break (0);
GNUNET_SCHEDULER_shutdown ();
return;
}
static void
run (void *cls,
const struct GNUNET_CONFIGURATION_Handle *c,
- struct GNUNET_SERVICE_Handle *service)
+ struct GNUNET_SERVICE_Handle *service)
{
struct GNUNET_MQ_MessageHandler core_handlers[] = {
GNUNET_MQ_hd_fixed_size (p2p_revoke,