X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Ftransport%2Fgnunet-service-transport_ats.c;h=01e115bfca35fbab6d8b8a7840534480ec0ff9c4;hb=0d24b1ba329faa35990034fcc861a264bb985fb1;hp=d6bc836d377eaf63b91b8da45e62356933c437bd;hpb=9cd0d5068f3341fe8451a61872894f28a5ac9047;p=oweals%2Fgnunet.git diff --git a/src/transport/gnunet-service-transport_ats.c b/src/transport/gnunet-service-transport_ats.c index d6bc836d3..01e115bfc 100644 --- a/src/transport/gnunet-service-transport_ats.c +++ b/src/transport/gnunet-service-transport_ats.c @@ -1,6 +1,6 @@ /* This file is part of GNUnet. - Copyright (C) 2015 Christian Grothoff (and other contributing authors) + Copyright (C) 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 @@ -294,11 +294,9 @@ GST_ats_is_known_no_session (const struct GNUNET_HELLO_Address *address) * suggest it again. * * @param cls the `struct AddressInfo` of the address to unblock - * @param tc unused */ static void -unblock_address (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) +unblock_address (void *cls) { struct AddressInfo *ai = cls; @@ -332,17 +330,17 @@ GST_ats_block_address (const struct GNUNET_HELLO_Address *address, { struct AddressInfo *ai; + if (0 == + memcmp (&GST_my_identity, + &address->peer, + sizeof (struct GNUNET_PeerIdentity))) + return; /* our own, ignore! */ ai = find_ai (address, session); - if (NULL == ai) - { - GNUNET_assert (0); - return; - } - if (NULL == ai->ar) + if (NULL == ai || NULL == ai->ar) { - /* already blocked, how did it get used!? */ - GNUNET_break (0); + /* The address is already gone/blocked, this can happen during a blacklist + * callback. */ return; } ai->back_off = GNUNET_TIME_STD_BACKOFF (ai->back_off); @@ -399,6 +397,11 @@ GST_ats_block_reset (const struct GNUNET_HELLO_Address *address, { struct AddressInfo *ai; + if (0 == + memcmp (&GST_my_identity, + &address->peer, + sizeof (struct GNUNET_PeerIdentity))) + return; /* our own, ignore! */ ai = find_ai (address, session); if (NULL == ai) { @@ -429,6 +432,12 @@ GST_ats_add_inbound_address (const struct GNUNET_HELLO_Address *address, struct GNUNET_ATS_AddressRecord *ar; struct AddressInfo *ai; + if (0 == + memcmp (&GST_my_identity, + &address->peer, + sizeof (struct GNUNET_PeerIdentity))) + return; /* our own, ignore! */ + /* Sanity checks for a valid inbound address */ if (NULL == address->transport_name) { @@ -487,6 +496,11 @@ GST_ats_add_address (const struct GNUNET_HELLO_Address *address, struct GNUNET_ATS_AddressRecord *ar; struct AddressInfo *ai; + if (0 == + memcmp (&GST_my_identity, + &address->peer, + sizeof (struct GNUNET_PeerIdentity))) + return; /* our own, ignore! */ /* validadte address */ if (NULL == address->transport_name) { @@ -537,6 +551,11 @@ GST_ats_new_session (const struct GNUNET_HELLO_Address *address, { struct AddressInfo *ai; + if (0 == + memcmp (&GST_my_identity, + &address->peer, + sizeof (struct GNUNET_PeerIdentity))) + return; /* our own, ignore! */ ai = find_ai (address, NULL); if (NULL == ai) { @@ -615,6 +634,11 @@ GST_ats_del_session (const struct GNUNET_HELLO_Address *address, { struct AddressInfo *ai; + if (0 == + memcmp (&GST_my_identity, + &address->peer, + sizeof (struct GNUNET_PeerIdentity))) + return; /* our own, ignore! */ if (NULL == session) { GNUNET_break (0); @@ -828,6 +852,11 @@ GST_ats_expire_address (const struct GNUNET_HELLO_Address *address) { struct AddressInfo *ai; + if (0 == + memcmp (&GST_my_identity, + &address->peer, + sizeof (struct GNUNET_PeerIdentity))) + return; /* our own, ignore! */ LOG (GNUNET_ERROR_TYPE_DEBUG, "Address %s of peer %s expired\n", GST_plugins_a2s (address),