gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [gnunet] branch master updated: fix peer destruction trigge


From: gnunet
Subject: [GNUnet-SVN] [gnunet] branch master updated: fix peer destruction triggers
Date: Wed, 01 Feb 2017 13:35:47 +0100

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository gnunet.

The following commit(s) were added to refs/heads/master by this push:
     new 109db31d3 fix peer destruction triggers
109db31d3 is described below

commit 109db31d37cd76fe8752a06ea4c915f8ccf656cb
Author: Christian Grothoff <address@hidden>
AuthorDate: Wed Feb 1 13:35:48 2017 +0100

    fix peer destruction triggers
---
 src/cadet/gnunet-service-cadet-new_peer.c | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

diff --git a/src/cadet/gnunet-service-cadet-new_peer.c 
b/src/cadet/gnunet-service-cadet-new_peer.c
index 539b04460..a5c05dd9c 100644
--- a/src/cadet/gnunet-service-cadet-new_peer.c
+++ b/src/cadet/gnunet-service-cadet-new_peer.c
@@ -327,6 +327,7 @@ destroy_peer (void *cls)
   cp->destroy_task = NULL;
   GNUNET_assert (NULL == cp->t);
   GNUNET_assert (NULL == cp->core_mq);
+  GNUNET_assert (0 == cp->num_paths);
   for (unsigned int i=0;i<cp->path_dll_length;i++)
     GNUNET_assert (NULL == cp->path_heads[i]);
   GNUNET_assert (0 == GNUNET_CONTAINER_multishortmap_size (cp->connections));
@@ -494,9 +495,8 @@ consider_peer_destroy (struct CadetPeer *cp)
                                                      cp);
     return;
   }
-  for (unsigned int i=0;i<cp->path_dll_length;i++)
-    if (NULL != cp->path_heads[i])
-      return; /* still relevant! */
+  if (0 != cp->num_paths)
+    return; /* still relevant! */
   if (NULL != cp->hello)
   {
     /* relevant only until HELLO expires */
@@ -843,6 +843,13 @@ GCP_path_entry_add (struct CadetPeer *cp,
     GCD_search_stop (cp->search_h);
     cp->search_h = NULL;
   }
+  if (NULL != cp->destroy_task)
+  {
+    /* paths changed, this resets the destroy timeout counter
+       and aborts a destroy task that may no longer be valid
+       to have (as we now have more paths via this peer). */
+    consider_peer_destroy (cp);
+  }
 }
 
 
@@ -875,6 +882,11 @@ GCP_path_entry_remove (struct CadetPeer *cp,
        (DESIRED_CONNECTIONS_PER_TUNNEL > cp->num_paths) )
     cp->search_h
       = GCD_search (&cp->pid);
+  if (NULL == cp->destroy_task)
+  {
+    /* paths changed, we might now be ready for destruction, check again */
+    consider_peer_destroy (cp);
+  }
 }
 
 

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]