[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r30900 - gnunet/src/dv
From: |
gnunet |
Subject: |
[GNUnet-SVN] r30900 - gnunet/src/dv |
Date: |
Wed, 27 Nov 2013 09:59:35 +0100 |
Author: wachs
Date: 2013-11-27 09:59:35 +0100 (Wed, 27 Nov 2013)
New Revision: 30900
Modified:
gnunet/src/dv/gnunet-service-dv.c
Log:
- FIX: GNUNET_SET_STATUS_HALF_DONE is never called only GNUNET_SET_STATUS_DONE
- FIX: Crash since neighbor_table == NULL on removal check
Modified: gnunet/src/dv/gnunet-service-dv.c
===================================================================
--- gnunet/src/dv/gnunet-service-dv.c 2013-11-27 08:41:49 UTC (rev 30899)
+++ gnunet/src/dv/gnunet-service-dv.c 2013-11-27 08:59:35 UTC (rev 30900)
@@ -1409,6 +1409,9 @@
}
target = GNUNET_new (struct Target);
memcpy (target, element->data, sizeof (struct Target));
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Received information about peer `%s' with distance %u\n",
+ GNUNET_i2s (&target->peer), ntohl(target->distance));
if (NULL == neighbor->neighbor_table_consensus)
neighbor->neighbor_table_consensus =
GNUNET_CONTAINER_multipeermap_create (10, GNUNET_NO);
if (GNUNET_YES !=
@@ -1442,36 +1445,38 @@
neighbor);
break;
case GNUNET_SET_STATUS_HALF_DONE:
+ break;
+ case GNUNET_SET_STATUS_DONE:
/* we got all of our updates; integrate routing table! */
neighbor->target_removed = GNUNET_NO;
- GNUNET_CONTAINER_multipeermap_iterate (neighbor->neighbor_table,
- &check_target_removed,
- neighbor);
+ if (NULL == neighbor->neighbor_table_consensus)
+ neighbor->neighbor_table_consensus =
GNUNET_CONTAINER_multipeermap_create (10, GNUNET_NO);
+ if (NULL != neighbor->neighbor_table)
+ GNUNET_CONTAINER_multipeermap_iterate (neighbor->neighbor_table,
+ &check_target_removed,
+ neighbor);
if (GNUNET_YES == neighbor->target_removed)
{
/* check if we got an alternative for the removed routes */
GNUNET_CONTAINER_multipeermap_iterate (direct_neighbors,
- &refresh_routes,
- NULL);
+ &refresh_routes,
+ NULL);
}
/* add targets that appeared (and check for improved routes) */
- if (NULL == neighbor->neighbor_table_consensus)
- neighbor->neighbor_table_consensus =
GNUNET_CONTAINER_multipeermap_create (10, GNUNET_NO);
GNUNET_CONTAINER_multipeermap_iterate (neighbor->neighbor_table_consensus,
- &check_target_added,
- neighbor);
+ &check_target_added,
+ neighbor);
if (NULL != neighbor->neighbor_table)
{
GNUNET_CONTAINER_multipeermap_iterate (neighbor->neighbor_table,
- &free_targets,
- NULL);
+ &free_targets,
+ NULL);
GNUNET_CONTAINER_multipeermap_destroy (neighbor->neighbor_table);
neighbor->neighbor_table = NULL;
}
neighbor->neighbor_table = neighbor->neighbor_table_consensus;
neighbor->neighbor_table_consensus = NULL;
- break;
- case GNUNET_SET_STATUS_DONE:
+
/* operation done, schedule next run! */
neighbor->set_op = NULL;
if (0 < memcmp (&neighbor->peer,
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r30900 - gnunet/src/dv,
gnunet <=