diff options
Diffstat (limited to 'src/rps/gnunet-service-rps.c')
-rw-r--r-- | src/rps/gnunet-service-rps.c | 173 |
1 files changed, 105 insertions, 68 deletions
diff --git a/src/rps/gnunet-service-rps.c b/src/rps/gnunet-service-rps.c index 08f2450f5..05d5c91c3 100644 --- a/src/rps/gnunet-service-rps.c +++ b/src/rps/gnunet-service-rps.c | |||
@@ -11,7 +11,7 @@ | |||
11 | WITHOUT ANY WARRANTY; without even the implied warranty of | 11 | WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 12 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
13 | Affero General Public License for more details. | 13 | Affero General Public License for more details. |
14 | 14 | ||
15 | You should have received a copy of the GNU Affero General Public License | 15 | You should have received a copy of the GNU Affero General Public License |
16 | along with this program. If not, see <http://www.gnu.org/licenses/>. | 16 | along with this program. If not, see <http://www.gnu.org/licenses/>. |
17 | 17 | ||
@@ -261,7 +261,7 @@ struct ChannelCtx | |||
261 | }; | 261 | }; |
262 | 262 | ||
263 | 263 | ||
264 | #ifdef ENABLE_MALICIOUS | 264 | #if ENABLE_MALICIOUS |
265 | 265 | ||
266 | /** | 266 | /** |
267 | * If type is 2 This struct is used to store the attacked peers in a DLL | 267 | * If type is 2 This struct is used to store the attacked peers in a DLL |
@@ -492,7 +492,7 @@ static struct GNUNET_PEERINFO_Handle *peerinfo_handle; | |||
492 | static struct GNUNET_PEERINFO_NotifyContext *peerinfo_notify_handle; | 492 | static struct GNUNET_PEERINFO_NotifyContext *peerinfo_notify_handle; |
493 | 493 | ||
494 | 494 | ||
495 | #ifdef ENABLE_MALICIOUS | 495 | #if ENABLE_MALICIOUS |
496 | /** | 496 | /** |
497 | * Type of malicious peer | 497 | * Type of malicious peer |
498 | * | 498 | * |
@@ -1379,6 +1379,7 @@ mq_notify_sent_cb (void *cls) | |||
1379 | if (0 == strncmp ("PUSH", pending_msg->type, 4)) | 1379 | if (0 == strncmp ("PUSH", pending_msg->type, 4)) |
1380 | GNUNET_STATISTICS_update(stats, "# pushes sent", 1, GNUNET_NO); | 1380 | GNUNET_STATISTICS_update(stats, "# pushes sent", 1, GNUNET_NO); |
1381 | if (0 == strncmp ("PULL REQUEST", pending_msg->type, 12) && | 1381 | if (0 == strncmp ("PULL REQUEST", pending_msg->type, 12) && |
1382 | NULL != map_single_hop && | ||
1382 | GNUNET_NO == GNUNET_CONTAINER_multipeermap_contains (map_single_hop, | 1383 | GNUNET_NO == GNUNET_CONTAINER_multipeermap_contains (map_single_hop, |
1383 | &pending_msg->peer_ctx->peer_id)) | 1384 | &pending_msg->peer_ctx->peer_id)) |
1384 | GNUNET_STATISTICS_update(stats, | 1385 | GNUNET_STATISTICS_update(stats, |
@@ -2576,7 +2577,7 @@ insert_in_sampler (void *cls, | |||
2576 | * messages to it */ | 2577 | * messages to it */ |
2577 | //indicate_sending_intention (peer); | 2578 | //indicate_sending_intention (peer); |
2578 | } | 2579 | } |
2579 | #ifdef TO_FILE | 2580 | #ifdef TO_FILE |
2580 | sub->num_observed_peers++; | 2581 | sub->num_observed_peers++; |
2581 | GNUNET_CONTAINER_multipeermap_put | 2582 | GNUNET_CONTAINER_multipeermap_put |
2582 | (sub->observed_unique_peers, | 2583 | (sub->observed_unique_peers, |
@@ -2590,7 +2591,7 @@ insert_in_sampler (void *cls, | |||
2590 | sub->num_observed_peers, | 2591 | sub->num_observed_peers, |
2591 | num_observed_unique_peers, | 2592 | num_observed_unique_peers, |
2592 | 1.0*num_observed_unique_peers/sub->num_observed_peers) | 2593 | 1.0*num_observed_unique_peers/sub->num_observed_peers) |
2593 | #endif /* TO_FILE */ | 2594 | #endif /* TO_FILE */ |
2594 | } | 2595 | } |
2595 | 2596 | ||
2596 | 2597 | ||
@@ -2675,11 +2676,23 @@ static void | |||
2675 | remove_peer (struct Sub *sub, | 2676 | remove_peer (struct Sub *sub, |
2676 | const struct GNUNET_PeerIdentity *peer) | 2677 | const struct GNUNET_PeerIdentity *peer) |
2677 | { | 2678 | { |
2678 | (void) View_remove_peer (sub->view, peer); | 2679 | (void) View_remove_peer (sub->view, |
2679 | CustomPeerMap_remove_peer (sub->pull_map, peer); | 2680 | peer); |
2680 | CustomPeerMap_remove_peer (sub->push_map, peer); | 2681 | CustomPeerMap_remove_peer (sub->pull_map, |
2681 | RPS_sampler_reinitialise_by_value (sub->sampler, peer); | 2682 | peer); |
2682 | destroy_peer (get_peer_ctx (sub->peer_map, peer)); | 2683 | CustomPeerMap_remove_peer (sub->push_map, |
2684 | peer); | ||
2685 | RPS_sampler_reinitialise_by_value (sub->sampler, | ||
2686 | peer); | ||
2687 | /* We want to destroy the peer now. | ||
2688 | * Sometimes, it just seems that it's already been removed from the peer_map, | ||
2689 | * so check the peer_map first. */ | ||
2690 | if (GNUNET_YES == check_peer_known (sub->peer_map, | ||
2691 | peer)) | ||
2692 | { | ||
2693 | destroy_peer (get_peer_ctx (sub->peer_map, | ||
2694 | peer)); | ||
2695 | } | ||
2683 | } | 2696 | } |
2684 | 2697 | ||
2685 | 2698 | ||
@@ -2701,15 +2714,19 @@ clean_peer (struct Sub *sub, | |||
2701 | LOG (GNUNET_ERROR_TYPE_DEBUG, | 2714 | LOG (GNUNET_ERROR_TYPE_DEBUG, |
2702 | "Going to remove send channel to peer %s\n", | 2715 | "Going to remove send channel to peer %s\n", |
2703 | GNUNET_i2s (peer)); | 2716 | GNUNET_i2s (peer)); |
2704 | #ifdef ENABLE_MALICIOUS | 2717 | #if ENABLE_MALICIOUS |
2705 | if (0 != GNUNET_CRYPTO_cmp_peer_identity (&attacked_peer, peer)) | 2718 | if (0 != GNUNET_CRYPTO_cmp_peer_identity (&attacked_peer, |
2706 | (void) destroy_sending_channel (get_peer_ctx (sub->peer_map, peer)); | 2719 | peer)) |
2720 | (void) destroy_sending_channel (get_peer_ctx (sub->peer_map, | ||
2721 | peer)); | ||
2707 | #else /* ENABLE_MALICIOUS */ | 2722 | #else /* ENABLE_MALICIOUS */ |
2708 | (void) destroy_sending_channel (get_peer_ctx (sub->peer_map, peer)); | 2723 | (void) destroy_sending_channel (get_peer_ctx (sub->peer_map, |
2724 | peer)); | ||
2709 | #endif /* ENABLE_MALICIOUS */ | 2725 | #endif /* ENABLE_MALICIOUS */ |
2710 | } | 2726 | } |
2711 | 2727 | ||
2712 | if (GNUNET_NO == GNUNET_CONTAINER_multipeermap_contains (sub->peer_map, peer)) | 2728 | if (GNUNET_NO == GNUNET_CONTAINER_multipeermap_contains (sub->peer_map, |
2729 | peer)) | ||
2713 | { | 2730 | { |
2714 | /* Peer was already removed by callback on destroyed channel */ | 2731 | /* Peer was already removed by callback on destroyed channel */ |
2715 | LOG (GNUNET_ERROR_TYPE_WARNING, | 2732 | LOG (GNUNET_ERROR_TYPE_WARNING, |
@@ -2846,19 +2863,15 @@ new_sub (const struct GNUNET_HashCode *hash, | |||
2846 | { | 2863 | { |
2847 | char *tmp_filename_valid_peers; | 2864 | char *tmp_filename_valid_peers; |
2848 | char str_hash[105]; | 2865 | char str_hash[105]; |
2849 | uint32_t len_filename_valid_peers; | 2866 | |
2850 | 2867 | GNUNET_snprintf (str_hash, | |
2851 | (void) GNUNET_snprintf (str_hash, 105, GNUNET_h2s_full (hash)); | 2868 | sizeof (str_hash), |
2852 | tmp_filename_valid_peers = GNUNET_strdup (sub->filename_valid_peers); | 2869 | GNUNET_h2s_full (hash)); |
2853 | GNUNET_free (sub->filename_valid_peers); | 2870 | tmp_filename_valid_peers = sub->filename_valid_peers; |
2854 | len_filename_valid_peers = strlen (tmp_filename_valid_peers) + 105; /* Len of full hash + 1 */ | 2871 | GNUNET_asprintf (&sub->filename_valid_peers, |
2855 | sub->filename_valid_peers = GNUNET_malloc (len_filename_valid_peers); | 2872 | "%s%s", |
2856 | strncat (sub->filename_valid_peers, | 2873 | tmp_filename_valid_peers, |
2857 | tmp_filename_valid_peers, | 2874 | str_hash); |
2858 | len_filename_valid_peers); | ||
2859 | strncat (sub->filename_valid_peers, | ||
2860 | str_hash, | ||
2861 | len_filename_valid_peers); | ||
2862 | GNUNET_free (tmp_filename_valid_peers); | 2875 | GNUNET_free (tmp_filename_valid_peers); |
2863 | } | 2876 | } |
2864 | sub->peer_map = GNUNET_CONTAINER_multipeermap_create (4, GNUNET_NO); | 2877 | sub->peer_map = GNUNET_CONTAINER_multipeermap_create (4, GNUNET_NO); |
@@ -2874,7 +2887,7 @@ new_sub (const struct GNUNET_HashCode *hash, | |||
2874 | 2887 | ||
2875 | /* Logging of internals */ | 2888 | /* Logging of internals */ |
2876 | sub->file_name_view_log = store_prefix_file_name (&own_identity, "view"); | 2889 | sub->file_name_view_log = store_prefix_file_name (&own_identity, "view"); |
2877 | #ifdef TO_FILE | 2890 | #ifdef TO_FILE |
2878 | sub->file_name_observed_log = store_prefix_file_name (&own_identity, | 2891 | sub->file_name_observed_log = store_prefix_file_name (&own_identity, |
2879 | "observed"); | 2892 | "observed"); |
2880 | sub->file_name_push_recv = store_prefix_file_name (&own_identity, | 2893 | sub->file_name_push_recv = store_prefix_file_name (&own_identity, |
@@ -2884,7 +2897,7 @@ new_sub (const struct GNUNET_HashCode *hash, | |||
2884 | sub->num_observed_peers = 0; | 2897 | sub->num_observed_peers = 0; |
2885 | sub->observed_unique_peers = GNUNET_CONTAINER_multipeermap_create (1, | 2898 | sub->observed_unique_peers = GNUNET_CONTAINER_multipeermap_create (1, |
2886 | GNUNET_NO); | 2899 | GNUNET_NO); |
2887 | #endif /* TO_FILE */ | 2900 | #endif /* TO_FILE */ |
2888 | 2901 | ||
2889 | /* Set up data structures for gossip */ | 2902 | /* Set up data structures for gossip */ |
2890 | sub->push_map = CustomPeerMap_create (4); | 2903 | sub->push_map = CustomPeerMap_create (4); |
@@ -2915,8 +2928,10 @@ static void | |||
2915 | destroy_sub (struct Sub *sub) | 2928 | destroy_sub (struct Sub *sub) |
2916 | { | 2929 | { |
2917 | #ifdef TO_FILE | 2930 | #ifdef TO_FILE |
2918 | char push_recv_str[1536] = ""; /* 256 * 6 (1 whitespace, 1 comma, up to 4 chars) */ | 2931 | #define SIZE_DUMP_FILE 1536 /* 256 * 6 (1 whitespace, 1 comma, up to 4 chars) */ |
2919 | char pull_delays_str[1536] = ""; /* 256 * 6 (1 whitespace, 1 comma, up to 4 chars) */ | 2932 | char push_recv_str[SIZE_DUMP_FILE + 1] = ""; |
2933 | char pull_delays_str[SIZE_DUMP_FILE + 1] = ""; | ||
2934 | char *recv_str_iter; | ||
2920 | #endif /* TO_FILE */ | 2935 | #endif /* TO_FILE */ |
2921 | GNUNET_assert (NULL != sub); | 2936 | GNUNET_assert (NULL != sub); |
2922 | GNUNET_assert (NULL != sub->do_round_task); | 2937 | GNUNET_assert (NULL != sub->do_round_task); |
@@ -2945,36 +2960,49 @@ destroy_sub (struct Sub *sub) | |||
2945 | sub->file_name_observed_log = NULL; | 2960 | sub->file_name_observed_log = NULL; |
2946 | 2961 | ||
2947 | /* Write push frequencies to disk */ | 2962 | /* Write push frequencies to disk */ |
2963 | recv_str_iter = push_recv_str; | ||
2948 | for (uint32_t i = 0; i < 256; i++) | 2964 | for (uint32_t i = 0; i < 256; i++) |
2949 | { | 2965 | { |
2950 | char push_recv_str_tmp[8]; | 2966 | char push_recv_str_tmp[8]; |
2951 | (void) snprintf (push_recv_str_tmp, 8, "%" PRIu32 "\n", sub->push_recv[i]); | 2967 | |
2952 | (void) strncat (push_recv_str, | 2968 | GNUNET_snprintf (push_recv_str_tmp, |
2953 | push_recv_str_tmp, | 2969 | sizeof (push_recv_str_tmp), |
2954 | 1535 - strnlen (push_recv_str, 1536)); | 2970 | "%" PRIu32 "\n", |
2955 | } | 2971 | sub->push_recv[i]); |
2956 | (void) strncat (push_recv_str, | 2972 | recv_str_iter = stpncpy (recv_str_iter, |
2957 | "\n", | 2973 | push_recv_str_tmp, |
2958 | 1535 - strnlen (push_recv_str, 1536)); | 2974 | 6); |
2959 | LOG (GNUNET_ERROR_TYPE_DEBUG, "Writing push stats to disk\n"); | 2975 | } |
2960 | to_file_w_len (sub->file_name_push_recv, 1535, push_recv_str); | 2976 | (void) stpcpy (recv_str_iter, |
2977 | "\n"); | ||
2978 | LOG (GNUNET_ERROR_TYPE_DEBUG, | ||
2979 | "Writing push stats to disk\n"); | ||
2980 | to_file_w_len (sub->file_name_push_recv, | ||
2981 | SIZE_DUMP_FILE, | ||
2982 | push_recv_str); | ||
2961 | GNUNET_free (sub->file_name_push_recv); | 2983 | GNUNET_free (sub->file_name_push_recv); |
2962 | sub->file_name_push_recv = NULL; | 2984 | sub->file_name_push_recv = NULL; |
2963 | 2985 | ||
2964 | /* Write pull delays to disk */ | 2986 | /* Write pull delays to disk */ |
2987 | recv_str_iter = pull_delays_str; | ||
2965 | for (uint32_t i = 0; i < 256; i++) | 2988 | for (uint32_t i = 0; i < 256; i++) |
2966 | { | 2989 | { |
2967 | char pull_delays_str_tmp[8]; | 2990 | char pull_delays_str_tmp[8]; |
2968 | (void) snprintf (pull_delays_str_tmp, 8, "%" PRIu32 "\n", sub->pull_delays[i]); | 2991 | |
2969 | (void) strncat (pull_delays_str, | 2992 | GNUNET_snprintf (pull_delays_str_tmp, |
2970 | pull_delays_str_tmp, | 2993 | sizeof (pull_delays_str_tmp), |
2971 | 1535 - strnlen (pull_delays_str, 1536)); | 2994 | "%" PRIu32 "\n", |
2972 | } | 2995 | sub->pull_delays[i]); |
2973 | (void) strncat (pull_delays_str, | 2996 | recv_str_iter = stpncpy (recv_str_iter, |
2974 | "\n", | 2997 | pull_delays_str_tmp, |
2975 | 1535 - strnlen (pull_delays_str, 1536)); | 2998 | 6); |
2999 | } | ||
3000 | (void) stpcpy (recv_str_iter, | ||
3001 | "\n"); | ||
2976 | LOG (GNUNET_ERROR_TYPE_DEBUG, "Writing pull delays to disk\n"); | 3002 | LOG (GNUNET_ERROR_TYPE_DEBUG, "Writing pull delays to disk\n"); |
2977 | to_file_w_len (sub->file_name_pull_delays, 1535, pull_delays_str); | 3003 | to_file_w_len (sub->file_name_pull_delays, |
3004 | SIZE_DUMP_FILE, | ||
3005 | pull_delays_str); | ||
2978 | GNUNET_free (sub->file_name_pull_delays); | 3006 | GNUNET_free (sub->file_name_pull_delays); |
2979 | sub->file_name_pull_delays = NULL; | 3007 | sub->file_name_pull_delays = NULL; |
2980 | 3008 | ||
@@ -3028,8 +3056,11 @@ core_connects (void *cls, | |||
3028 | (void) cls; | 3056 | (void) cls; |
3029 | (void) mq; | 3057 | (void) mq; |
3030 | 3058 | ||
3031 | GNUNET_CONTAINER_multipeermap_put (map_single_hop, peer, NULL, | 3059 | GNUNET_assert (GNUNET_YES == |
3032 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY); | 3060 | GNUNET_CONTAINER_multipeermap_put (map_single_hop, |
3061 | peer, | ||
3062 | NULL, | ||
3063 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY)); | ||
3033 | return NULL; | 3064 | return NULL; |
3034 | } | 3065 | } |
3035 | 3066 | ||
@@ -3436,7 +3467,7 @@ handle_peer_push (void *cls, | |||
3436 | GNUNET_STATISTICS_update(stats, "# push message received", 1, GNUNET_NO); | 3467 | GNUNET_STATISTICS_update(stats, "# push message received", 1, GNUNET_NO); |
3437 | } | 3468 | } |
3438 | 3469 | ||
3439 | #ifdef ENABLE_MALICIOUS | 3470 | #if ENABLE_MALICIOUS |
3440 | struct AttackedPeer *tmp_att_peer; | 3471 | struct AttackedPeer *tmp_att_peer; |
3441 | 3472 | ||
3442 | if ( (1 == mal_type) || | 3473 | if ( (1 == mal_type) || |
@@ -3512,7 +3543,7 @@ handle_peer_pull_request (void *cls, | |||
3512 | } | 3543 | } |
3513 | } | 3544 | } |
3514 | 3545 | ||
3515 | #ifdef ENABLE_MALICIOUS | 3546 | #if ENABLE_MALICIOUS |
3516 | if (1 == mal_type | 3547 | if (1 == mal_type |
3517 | || 3 == mal_type) | 3548 | || 3 == mal_type) |
3518 | { /* Try to maximise representation */ | 3549 | { /* Try to maximise representation */ |
@@ -3606,7 +3637,7 @@ handle_peer_pull_reply (void *cls, | |||
3606 | const struct GNUNET_PeerIdentity *peers; | 3637 | const struct GNUNET_PeerIdentity *peers; |
3607 | struct Sub *sub = channel_ctx->peer_ctx->sub; | 3638 | struct Sub *sub = channel_ctx->peer_ctx->sub; |
3608 | uint32_t i; | 3639 | uint32_t i; |
3609 | #ifdef ENABLE_MALICIOUS | 3640 | #if ENABLE_MALICIOUS |
3610 | struct AttackedPeer *tmp_att_peer; | 3641 | struct AttackedPeer *tmp_att_peer; |
3611 | #endif /* ENABLE_MALICIOUS */ | 3642 | #endif /* ENABLE_MALICIOUS */ |
3612 | 3643 | ||
@@ -3618,7 +3649,8 @@ handle_peer_pull_reply (void *cls, | |||
3618 | "# pull reply messages received", | 3649 | "# pull reply messages received", |
3619 | 1, | 3650 | 1, |
3620 | GNUNET_NO); | 3651 | GNUNET_NO); |
3621 | if (GNUNET_NO == GNUNET_CONTAINER_multipeermap_contains (map_single_hop, | 3652 | if (NULL != map_single_hop && |
3653 | GNUNET_NO == GNUNET_CONTAINER_multipeermap_contains (map_single_hop, | ||
3622 | &channel_ctx->peer_ctx->peer_id)) | 3654 | &channel_ctx->peer_ctx->peer_id)) |
3623 | { | 3655 | { |
3624 | GNUNET_STATISTICS_update (stats, | 3656 | GNUNET_STATISTICS_update (stats, |
@@ -3628,7 +3660,7 @@ handle_peer_pull_reply (void *cls, | |||
3628 | } | 3660 | } |
3629 | } | 3661 | } |
3630 | 3662 | ||
3631 | #ifdef ENABLE_MALICIOUS | 3663 | #if ENABLE_MALICIOUS |
3632 | // We shouldn't even receive pull replies as we're not sending | 3664 | // We shouldn't even receive pull replies as we're not sending |
3633 | if (2 == mal_type) | 3665 | if (2 == mal_type) |
3634 | { | 3666 | { |
@@ -3649,7 +3681,7 @@ handle_peer_pull_reply (void *cls, | |||
3649 | i, | 3681 | i, |
3650 | GNUNET_i2s (&peers[i])); | 3682 | GNUNET_i2s (&peers[i])); |
3651 | 3683 | ||
3652 | #ifdef ENABLE_MALICIOUS | 3684 | #if ENABLE_MALICIOUS |
3653 | if ((NULL != att_peer_set) && | 3685 | if ((NULL != att_peer_set) && |
3654 | (1 == mal_type || 3 == mal_type)) | 3686 | (1 == mal_type || 3 == mal_type)) |
3655 | { /* Add attacked peer to local list */ | 3687 | { /* Add attacked peer to local list */ |
@@ -3670,25 +3702,30 @@ handle_peer_pull_reply (void *cls, | |||
3670 | } | 3702 | } |
3671 | #endif /* ENABLE_MALICIOUS */ | 3703 | #endif /* ENABLE_MALICIOUS */ |
3672 | /* Make sure we 'know' about this peer */ | 3704 | /* Make sure we 'know' about this peer */ |
3673 | (void) insert_peer (channel_ctx->peer_ctx->sub, &peers[i]); | 3705 | (void) insert_peer (channel_ctx->peer_ctx->sub, |
3706 | &peers[i]); | ||
3674 | 3707 | ||
3675 | if (GNUNET_YES == check_peer_valid (channel_ctx->peer_ctx->sub->valid_peers, | 3708 | if (GNUNET_YES == check_peer_valid (channel_ctx->peer_ctx->sub->valid_peers, |
3676 | &peers[i])) | 3709 | &peers[i])) |
3677 | { | 3710 | { |
3678 | CustomPeerMap_put (channel_ctx->peer_ctx->sub->pull_map, &peers[i]); | 3711 | CustomPeerMap_put (channel_ctx->peer_ctx->sub->pull_map, |
3712 | &peers[i]); | ||
3679 | } | 3713 | } |
3680 | else | 3714 | else |
3681 | { | 3715 | { |
3682 | schedule_operation (channel_ctx->peer_ctx, | 3716 | schedule_operation (channel_ctx->peer_ctx, |
3683 | insert_in_pull_map, | 3717 | insert_in_pull_map, |
3684 | channel_ctx->peer_ctx->sub); /* cls */ | 3718 | channel_ctx->peer_ctx->sub); /* cls */ |
3685 | (void) issue_peer_online_check (channel_ctx->peer_ctx->sub, &peers[i]); | 3719 | (void) issue_peer_online_check (channel_ctx->peer_ctx->sub, |
3720 | &peers[i]); | ||
3686 | } | 3721 | } |
3687 | } | 3722 | } |
3688 | 3723 | ||
3689 | UNSET_PEER_FLAG (get_peer_ctx (channel_ctx->peer_ctx->sub->peer_map, sender), | 3724 | UNSET_PEER_FLAG (get_peer_ctx (channel_ctx->peer_ctx->sub->peer_map, |
3725 | sender), | ||
3690 | Peers_PULL_REPLY_PENDING); | 3726 | Peers_PULL_REPLY_PENDING); |
3691 | clean_peer (channel_ctx->peer_ctx->sub, sender); | 3727 | clean_peer (channel_ctx->peer_ctx->sub, |
3728 | sender); | ||
3692 | 3729 | ||
3693 | GNUNET_break_op (check_peer_known (channel_ctx->peer_ctx->sub->peer_map, | 3730 | GNUNET_break_op (check_peer_known (channel_ctx->peer_ctx->sub->peer_map, |
3694 | sender)); | 3731 | sender)); |
@@ -3812,7 +3849,7 @@ send_push (struct PeerContext *peer_ctx) | |||
3812 | } | 3849 | } |
3813 | 3850 | ||
3814 | 3851 | ||
3815 | #ifdef ENABLE_MALICIOUS | 3852 | #if ENABLE_MALICIOUS |
3816 | 3853 | ||
3817 | 3854 | ||
3818 | /** | 3855 | /** |
@@ -4534,7 +4571,7 @@ shutdown_task (void *cls) | |||
4534 | } | 4571 | } |
4535 | GNUNET_CADET_disconnect (cadet_handle); | 4572 | GNUNET_CADET_disconnect (cadet_handle); |
4536 | cadet_handle = NULL; | 4573 | cadet_handle = NULL; |
4537 | #ifdef ENABLE_MALICIOUS | 4574 | #if ENABLE_MALICIOUS |
4538 | struct AttackedPeer *tmp_att_peer; | 4575 | struct AttackedPeer *tmp_att_peer; |
4539 | GNUNET_array_grow (mal_peers, | 4576 | GNUNET_array_grow (mal_peers, |
4540 | num_mal_peers, | 4577 | num_mal_peers, |
@@ -4647,7 +4684,7 @@ run (void *cls, | |||
4647 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, | 4684 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, |
4648 | "STARTING SERVICE (rps) for peer [%s]\n", | 4685 | "STARTING SERVICE (rps) for peer [%s]\n", |
4649 | GNUNET_i2s (&own_identity)); | 4686 | GNUNET_i2s (&own_identity)); |
4650 | #ifdef ENABLE_MALICIOUS | 4687 | #if ENABLE_MALICIOUS |
4651 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, | 4688 | GNUNET_log (GNUNET_ERROR_TYPE_WARNING, |
4652 | "Malicious execution compiled in.\n"); | 4689 | "Malicious execution compiled in.\n"); |
4653 | #endif /* ENABLE_MALICIOUS */ | 4690 | #endif /* ENABLE_MALICIOUS */ |
@@ -4740,7 +4777,7 @@ GNUNET_SERVICE_MAIN | |||
4740 | GNUNET_MESSAGE_TYPE_RPS_CS_SEED, | 4777 | GNUNET_MESSAGE_TYPE_RPS_CS_SEED, |
4741 | struct GNUNET_RPS_CS_SeedMessage, | 4778 | struct GNUNET_RPS_CS_SeedMessage, |
4742 | NULL), | 4779 | NULL), |
4743 | #ifdef ENABLE_MALICIOUS | 4780 | #if ENABLE_MALICIOUS |
4744 | GNUNET_MQ_hd_var_size (client_act_malicious, | 4781 | GNUNET_MQ_hd_var_size (client_act_malicious, |
4745 | GNUNET_MESSAGE_TYPE_RPS_ACT_MALICIOUS, | 4782 | GNUNET_MESSAGE_TYPE_RPS_ACT_MALICIOUS, |
4746 | struct GNUNET_RPS_CS_ActMaliciousMessage, | 4783 | struct GNUNET_RPS_CS_ActMaliciousMessage, |