aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rps/gnunet-rps-profiler.c7
-rw-r--r--src/rps/gnunet-service-rps.c13
-rw-r--r--src/rps/gnunet-service-rps_custommap.c9
3 files changed, 20 insertions, 9 deletions
diff --git a/src/rps/gnunet-rps-profiler.c b/src/rps/gnunet-rps-profiler.c
index 82aeffb79..908dcca17 100644
--- a/src/rps/gnunet-rps-profiler.c
+++ b/src/rps/gnunet-rps-profiler.c
@@ -3067,9 +3067,10 @@ run (void *cls,
3067 } 3067 }
3068 else 3068 else
3069 { 3069 {
3070 duration = GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 3070 duration = GNUNET_TIME_relative_multiply (
3071 (timeout.rel_value_us / 1000000) 3071 GNUNET_TIME_UNIT_SECONDS,
3072 * 0.75); 3072 ( (double) timeout.rel_value_us / (double) 1000000)
3073 * 0.75);
3073 } 3074 }
3074 } 3075 }
3075 else 3076 else
diff --git a/src/rps/gnunet-service-rps.c b/src/rps/gnunet-service-rps.c
index dc4c5dab7..cccd1a4b3 100644
--- a/src/rps/gnunet-service-rps.c
+++ b/src/rps/gnunet-service-rps.c
@@ -2637,7 +2637,7 @@ insert_in_sampler (void *cls,
2637 } 2637 }
2638#ifdef TO_FILE 2638#ifdef TO_FILE
2639 sub->num_observed_peers++; 2639 sub->num_observed_peers++;
2640 GNUNET_CONTAINER_multipeermap_put 2640 (void) GNUNET_CONTAINER_multipeermap_put
2641 (sub->observed_unique_peers, 2641 (sub->observed_unique_peers,
2642 peer, 2642 peer,
2643 NULL, 2643 NULL,
@@ -2836,13 +2836,20 @@ cleanup_destroyed_channel (void *cls,
2836 (void) channel; 2836 (void) channel;
2837 2837
2838 channel_ctx->channel = NULL; 2838 channel_ctx->channel = NULL;
2839 remove_channel_ctx (channel_ctx);
2840 if ((NULL != peer_ctx) && 2839 if ((NULL != peer_ctx) &&
2841 (peer_ctx->send_channel_ctx == channel_ctx) && 2840 (peer_ctx->send_channel_ctx == channel_ctx) &&
2842 (GNUNET_YES == check_sending_channel_needed (channel_ctx->peer_ctx)) ) 2841 (GNUNET_YES == check_sending_channel_needed (peer_ctx)) )
2843 { 2842 {
2843 remove_channel_ctx (channel_ctx);
2844 remove_peer (peer_ctx->sub, &peer_ctx->peer_id); 2844 remove_peer (peer_ctx->sub, &peer_ctx->peer_id);
2845 } 2845 }
2846 else
2847 {
2848 /* We need this if-else construct because we need to make sure the channel
2849 * (context) is cleaned up before removing the peer, but still neet to
2850 * compare it while checking the condition */
2851 remove_channel_ctx (channel_ctx);
2852 }
2846} 2853}
2847 2854
2848 2855
diff --git a/src/rps/gnunet-service-rps_custommap.c b/src/rps/gnunet-service-rps_custommap.c
index 54e361d32..392c29397 100644
--- a/src/rps/gnunet-service-rps_custommap.c
+++ b/src/rps/gnunet-service-rps_custommap.c
@@ -206,6 +206,7 @@ CustomPeerMap_remove_peer (const struct CustomPeerMap *c_peer_map,
206 struct GNUNET_PeerIdentity *p; 206 struct GNUNET_PeerIdentity *p;
207 uint32_t *last_index; 207 uint32_t *last_index;
208 struct GNUNET_PeerIdentity *last_p; 208 struct GNUNET_PeerIdentity *last_p;
209 int ret;
209 210
210 if (GNUNET_NO == CustomPeerMap_contains_peer (c_peer_map, 211 if (GNUNET_NO == CustomPeerMap_contains_peer (c_peer_map,
211 peer)) 212 peer))
@@ -234,9 +235,11 @@ CustomPeerMap_remove_peer (const struct CustomPeerMap *c_peer_map,
234 last_p); 235 last_p);
235 GNUNET_assert (NULL != last_index); 236 GNUNET_assert (NULL != last_index);
236 GNUNET_assert (CustomPeerMap_size (c_peer_map) == *last_index); 237 GNUNET_assert (CustomPeerMap_size (c_peer_map) == *last_index);
237 GNUNET_CONTAINER_multihashmap32_put (c_peer_map->hash_map, 238 ret = GNUNET_CONTAINER_multihashmap32_put (c_peer_map->hash_map,
238 *index, last_p, 239 *index,
239 GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY); 240 last_p,
241 GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY);
242 GNUNET_assert (GNUNET_OK == ret);
240 GNUNET_CONTAINER_multihashmap32_remove_all (c_peer_map->hash_map, 243 GNUNET_CONTAINER_multihashmap32_remove_all (c_peer_map->hash_map,
241 *last_index); 244 *last_index);
242 *last_index = *index; 245 *last_index = *index;