[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r35685 - gnunet/src/dht
From: |
gnunet |
Subject: |
[GNUnet-SVN] r35685 - gnunet/src/dht |
Date: |
Thu, 30 Apr 2015 11:11:25 +0200 |
Author: grothoff
Date: 2015-04-30 11:11:25 +0200 (Thu, 30 Apr 2015)
New Revision: 35685
Modified:
gnunet/src/dht/gnunet-service-wdht_neighbours.c
Log:
-fixing 'delete_trail()'
Modified: gnunet/src/dht/gnunet-service-wdht_neighbours.c
===================================================================
--- gnunet/src/dht/gnunet-service-wdht_neighbours.c 2015-04-30 08:57:59 UTC
(rev 35684)
+++ gnunet/src/dht/gnunet-service-wdht_neighbours.c 2015-04-30 09:11:25 UTC
(rev 35685)
@@ -623,126 +623,49 @@
struct FriendInfo *friend;
struct GNUNET_MQ_Envelope *env;
struct TrailDestroyMessage *tdm;
- struct Trail *current;
+ struct Finger *finger;
- tdm = GNUNET_new(struct TrailDestroyMessage);
- current = trail;
-
- if (inform_pred)
+ friend = current->pred;
+ if (NULL != friend)
{
- struct Trail *previous_pred;
- struct Trail *next_pred;
- tdm->trail_id = current->pred_id;
- friend = current->pred;
-
- while( NULL != current)
+ if (GNUNET_YES == inform_pred)
{
- if (NULL != friend)
- {
- env = GNUNET_MQ_msg (tdm,
- GNUNET_MESSAGE_TYPE_WDHT_TRAIL_DESTROY);
- GNUNET_MQ_send (friend->mq,
- env);
- }
-
- next_pred = current->next_pred;
- previous_pred = current->prev_pred;
-
- /* Freeing current trail memory */
- GNUNET_free(current);
-
- /* Destroying the next successor list */
- while(NULL != previous_pred)
- {
- struct Trail *tmp;
- if (NULL != friend)
- {
- env = GNUNET_MQ_msg (tdm,
- GNUNET_MESSAGE_TYPE_WDHT_TRAIL_DESTROY);
- GNUNET_MQ_send (friend->mq,
- env);
- }
-
- tmp = next_pred;
- next_pred = next_pred->next_pred;
- GNUNET_free(tmp);
- }
-
- /* Destroying the next predecessor list */
- while(NULL != next_pred)
- {
- struct Trail *tmp;
- if (NULL != friend)
- {
- env = GNUNET_MQ_msg (tdm,
- GNUNET_MESSAGE_TYPE_WDHT_TRAIL_DESTROY);
- GNUNET_MQ_send (friend->mq,
- env);
- }
-
- tmp = next_pred;
- next_pred = next_pred->next_pred;
- GNUNET_free(tmp);
- }
+ env = GNUNET_MQ_msg (tdm,
+ GNUNET_MESSAGE_TYPE_WDHT_TRAIL_DESTROY);
+ tdm->trail_id = current->pred_id;
+ GNUNET_MQ_send (friend->mq,
+ env);
}
+ GNUNET_CONTAINER_MDLL_remove (pred,
+ friend->pred_head,
+ friend->pred_tail,
+ trail);
}
-
- if (inform_succ)
+ friend = current->succ;
+ if (NULL != friend)
{
- struct Trail *previous_succ;
- struct Trail *next_succ;
- tdm->trail_id = current->succ_id;
- friend = current->succ;
-
- while( NULL != current)
+ if (GNUNET_YES == inform_succ)
{
- if (NULL != friend)
- {
- env = GNUNET_MQ_msg (tdm,
- GNUNET_MESSAGE_TYPE_WDHT_TRAIL_DESTROY);
- GNUNET_MQ_send (friend->mq,
- env);
- }
-
- next_succ = current->next_succ;
- previous_succ = current->prev_succ;
-
- /* Freeing current trail memory */
- GNUNET_free(current);
-
- /* Destroying the next successor list */
- while(NULL != previous_succ)
- {
- struct Trail *tmp;
- if (NULL != friend)
- {
- env = GNUNET_MQ_msg (tdm,
- GNUNET_MESSAGE_TYPE_WDHT_TRAIL_DESTROY);
- GNUNET_MQ_send (friend->mq,
- env);
- }
- tmp = next_succ;
- previous_succ = previous_succ->prev_succ;
- GNUNET_free(tmp);
- }
-
- /* Destroying the next successor list */
- while(NULL != next_succ)
- {
- struct Trail *tmp;
- if (NULL != friend)
- {
- env = GNUNET_MQ_msg (tdm,
- GNUNET_MESSAGE_TYPE_WDHT_TRAIL_DESTROY);
- GNUNET_MQ_send (friend->mq,
- env);
- }
- tmp = next_succ;
- next_succ = next_succ->next_pred;
- GNUNET_free(tmp);
- }
+ env = GNUNET_MQ_msg (tdm,
+ GNUNET_MESSAGE_TYPE_WDHT_TRAIL_DESTROY);
+ tdm->trail_id = current->pred_id;
+ GNUNET_MQ_send (friend->mq,
+ env);
}
+ GNUNET_CONTAINER_MDLL_remove (succ,
+ friend->pred_head,
+ friend->pred_tail,
+ trail);
}
+ GNUNET_break (trail ==
+ GNUNET_CONTAINER_heap_remove_node (trail->hn));
+ finger = *trail->finger;
+ if (NULL != finger)
+ {
+ *trail->finger = NULL;
+ GNUNET_free (finger);
+ }
+ GNUNET_free (trail);
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r35685 - gnunet/src/dht,
gnunet <=