This file is part of GNUnet.
Copyright (C) 2010-2015 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., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, 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 <http://www.gnu.org/licenses/>.
*/
/**
*/
#include "platform.h"
#include "gnunet-service-transport_ats.h"
-#include "gnunet-service-transport_blacklist.h"
-#include "gnunet-service-transport_clients.h"
#include "gnunet-service-transport_hello.h"
#include "gnunet-service-transport_neighbours.h"
#include "gnunet-service-transport_plugins.h"
ping.challenge = htonl (ve->challenge);
ping.target = *pid;
- if (tsize >= GNUNET_SERVER_MAX_MESSAGE_SIZE)
+ if (tsize >= GNUNET_MAX_MESSAGE_SIZE)
{
GNUNET_break (0);
hsize = 0;
GNUNET_STATISTICS_update (GST_stats,
gettext_noop ("# address revalidations started"), 1,
GNUNET_NO);
+ if (NULL != ve->bc)
+ {
+ GST_blacklist_test_cancel (ve->bc);
+ ve->bc = NULL;
+ }
bc = GST_blacklist_test_allowed (&ve->address->peer,
- ve->address->transport_name,
+ ve->address->transport_name,
&transmit_ping_if_allowed,
- ve,
- NULL,
- NULL);
+ ve,
+ NULL,
+ NULL);
if (NULL != bc)
- ve->bc = bc; /* only set 'bc' if 'transmit_ping_if_allowed' was not already
- * called... */
+ {
+ /* If transmit_ping_if_allowed was already called it may have freed ve,
+ * so only set ve->bc if it has not been called.
+ */
+ ve->bc = bc;
+ }
}
if (NULL == papi)
{
/* This plugin is currently unvailable ... ignore */
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+ "No plugin available for %s\n",
+ address->transport_name);
return;
}
ve = find_validation_entry (address);
GNUNET_i2s (&ve->address->peer));
ve->revalidation_task = GNUNET_SCHEDULER_add_now (&revalidate_address, ve);
}
+ else
+ {
+ GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+ "Validation already running for address `%s' of %s\n",
+ GST_plugins_a2s (ve->address),
+ GNUNET_i2s (&ve->address->peer));
+ }
}
GNUNET_TRANSPORT_VS_UPDATE);
/* build HELLO to store in PEERINFO */
+ GNUNET_STATISTICS_update (GST_stats,
+ gettext_noop ("# HELLOs given to peerinfo"),
+ 1,
+ GNUNET_NO);
ve->copied = GNUNET_NO;
hello = GNUNET_HELLO_create (&ve->address->peer.public_key,
&add_valid_peer_address,
ve,
GNUNET_NO);
- GNUNET_PEERINFO_add_peer (GST_peerinfo,
- hello,
- NULL,
- NULL);
+ GNUNET_break (NULL !=
+ GNUNET_PEERINFO_add_peer (GST_peerinfo,
+ hello,
+ NULL,
+ NULL));
GNUNET_free (hello);
return GNUNET_OK;
}
sizeof (struct GNUNET_PeerIdentity)))
{
/* got our own HELLO, how boring */
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Validation received our own HELLO (%s), ignoring\n",
+ GNUNET_i2s (&pid));
return GNUNET_OK;
}
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,