aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulius Bünger <buenger@mytum.de>2015-02-15 17:19:39 +0000
committerJulius Bünger <buenger@mytum.de>2015-02-15 17:19:39 +0000
commitb3d821fae66b2b020b4b89190559f54742d16317 (patch)
tree919145f01da1700a2fee350bd82772c84de64f24
parent52f6eb0b44a0f6250024ae574fd74f22f7701846 (diff)
downloadgnunet-b3d821fae66b2b020b4b89190559f54742d16317.tar.gz
gnunet-b3d821fae66b2b020b4b89190559f54742d16317.zip
- restructured peer removal
-rw-r--r--src/rps/gnunet-service-rps.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/rps/gnunet-service-rps.c b/src/rps/gnunet-service-rps.c
index 325abb7a2..ce1b156b4 100644
--- a/src/rps/gnunet-service-rps.c
+++ b/src/rps/gnunet-service-rps.c
@@ -1461,7 +1461,8 @@ removeCB (void *cls, struct RPS_Sampler *sampler,
1461 s = RPS_sampler_count_id (sampler, id); 1461 s = RPS_sampler_count_id (sampler, id);
1462 if ( 1 >= s ) 1462 if ( 1 >= s )
1463 { 1463 {
1464 if (GNUNET_YES == GNUNET_CONTAINER_multipeermap_contains (peer_map, id)) 1464 if (GNUNET_YES == GNUNET_CONTAINER_multipeermap_contains (peer_map, id)
1465 && 0 != GNUNET_CRYPTO_cmp_peer_identity (id, &own_identity))
1465 { 1466 {
1466 ctx = GNUNET_CONTAINER_multipeermap_get (peer_map, id); 1467 ctx = GNUNET_CONTAINER_multipeermap_get (peer_map, id);
1467 if (NULL != ctx->send_channel) 1468 if (NULL != ctx->send_channel)
@@ -1469,12 +1470,15 @@ removeCB (void *cls, struct RPS_Sampler *sampler,
1469 if (NULL != ctx->mq) 1470 if (NULL != ctx->mq)
1470 { 1471 {
1471 GNUNET_MQ_destroy (ctx->mq); 1472 GNUNET_MQ_destroy (ctx->mq);
1473 ctx->mq = NULL;
1472 } 1474 }
1473 // may already be freed at shutdown of cadet 1475 // may already be freed at shutdown of cadet
1474 //GNUNET_CADET_channel_destroy (ctx->send_channel); 1476 // maybe this fails at our own channel
1477 GNUNET_CADET_channel_destroy (ctx->send_channel);
1478 ctx->send_channel = NULL;
1475 } 1479 }
1476 // TODO cleanup peer 1480 // TODO cleanup peer
1477 (void) GNUNET_CONTAINER_multipeermap_remove_all (peer_map, id); 1481 //(void) GNUNET_CONTAINER_multipeermap_remove_all (peer_map, id);
1478 } 1482 }
1479 } 1483 }
1480} 1484}