aboutsummaryrefslogtreecommitdiff
path: root/src/transport/gnunet-service-transport_blacklist.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2016-04-09 23:14:03 +0000
committerChristian Grothoff <christian@grothoff.org>2016-04-09 23:14:03 +0000
commit29e6158507a0758192075ac6ece7ba8e75ddc49a (patch)
treeb91ded48da322f8ba4c9bb0f5504228aa036c2d1 /src/transport/gnunet-service-transport_blacklist.c
parent5dfcb058ab5db9ae0c4b147d8a99c64ca0980028 (diff)
downloadgnunet-29e6158507a0758192075ac6ece7ba8e75ddc49a.tar.gz
gnunet-29e6158507a0758192075ac6ece7ba8e75ddc49a.zip
small API change: do no longer pass rarely needed GNUNET_SCHEDULER_TaskContext to all scheduler tasks; instead, allow the relatively few tasks that need it to obtain the context via GNUNET_SCHEDULER_get_task_context()
Diffstat (limited to 'src/transport/gnunet-service-transport_blacklist.c')
-rw-r--r--src/transport/gnunet-service-transport_blacklist.c36
1 files changed, 16 insertions, 20 deletions
diff --git a/src/transport/gnunet-service-transport_blacklist.c b/src/transport/gnunet-service-transport_blacklist.c
index 14375fce4..ea5644390 100644
--- a/src/transport/gnunet-service-transport_blacklist.c
+++ b/src/transport/gnunet-service-transport_blacklist.c
@@ -205,11 +205,9 @@ static struct GNUNET_CONTAINER_MultiPeerMap *blacklist;
205 * Perform next action in the blacklist check. 205 * Perform next action in the blacklist check.
206 * 206 *
207 * @param cls the `struct BlacklistCheck*` 207 * @param cls the `struct BlacklistCheck*`
208 * @param tc unused
209 */ 208 */
210static void 209static void
211do_blacklist_check (void *cls, 210do_blacklist_check (void *cls);
212 const struct GNUNET_SCHEDULER_TaskContext *tc);
213 211
214 212
215/** 213/**
@@ -395,7 +393,7 @@ GST_blacklist_stop ()
395 * @return number of bytes copied to @a buf 393 * @return number of bytes copied to @a buf
396 */ 394 */
397static size_t 395static size_t
398transmit_blacklist_message (void *cls, 396transmit_blacklist_message (void *cls,
399 size_t size, 397 size_t size,
400 void *buf) 398 void *buf)
401{ 399{
@@ -416,7 +414,7 @@ transmit_blacklist_message (void *cls,
416 } 414 }
417 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 415 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
418 "Sending blacklist test for peer `%s' to client %p\n", 416 "Sending blacklist test for peer `%s' to client %p\n",
419 GNUNET_i2s (&bc->peer), 417 GNUNET_i2s (&bc->peer),
420 bc->bl_pos->client); 418 bc->bl_pos->client);
421 bl = bc->bl_pos; 419 bl = bc->bl_pos;
422 bm.header.size = htons (sizeof (struct BlacklistMessage)); 420 bm.header.size = htons (sizeof (struct BlacklistMessage));
@@ -424,7 +422,7 @@ transmit_blacklist_message (void *cls,
424 bm.is_allowed = htonl (0); 422 bm.is_allowed = htonl (0);
425 bm.peer = bc->peer; 423 bm.peer = bc->peer;
426 memcpy (buf, 424 memcpy (buf,
427 &bm, 425 &bm,
428 sizeof (bm)); 426 sizeof (bm));
429 if (GNUNET_YES == bl->call_receive_done) 427 if (GNUNET_YES == bl->call_receive_done)
430 { 428 {
@@ -442,11 +440,9 @@ transmit_blacklist_message (void *cls,
442 * Perform next action in the blacklist check. 440 * Perform next action in the blacklist check.
443 * 441 *
444 * @param cls the `struct GST_BlacklistCheck *` 442 * @param cls the `struct GST_BlacklistCheck *`
445 * @param tc unused
446 */ 443 */
447static void 444static void
448do_blacklist_check (void *cls, 445do_blacklist_check (void *cls)
449 const struct GNUNET_SCHEDULER_TaskContext *tc)
450{ 446{
451 struct GST_BlacklistCheck *bc = cls; 447 struct GST_BlacklistCheck *bc = cls;
452 struct Blacklisters *bl; 448 struct Blacklisters *bl;
@@ -459,7 +455,7 @@ do_blacklist_check (void *cls,
459 "No other blacklist clients active, will allow neighbour `%s'\n", 455 "No other blacklist clients active, will allow neighbour `%s'\n",
460 GNUNET_i2s (&bc->peer)); 456 GNUNET_i2s (&bc->peer));
461 457
462 bc->cont (bc->cont_cls, 458 bc->cont (bc->cont_cls,
463 &bc->peer, 459 &bc->peer,
464 bc->address, 460 bc->address,
465 bc->session, 461 bc->session,
@@ -475,7 +471,7 @@ do_blacklist_check (void *cls,
475 GNUNET_SERVER_notify_transmit_ready (bl->client, 471 GNUNET_SERVER_notify_transmit_ready (bl->client,
476 sizeof (struct BlacklistMessage), 472 sizeof (struct BlacklistMessage),
477 GNUNET_TIME_UNIT_FOREVER_REL, 473 GNUNET_TIME_UNIT_FOREVER_REL,
478 &transmit_blacklist_message, 474 &transmit_blacklist_message,
479 bc); 475 bc);
480} 476}
481 477
@@ -501,7 +497,7 @@ confirm_or_drop_neighbour (void *cls,
501 if (GNUNET_OK == allowed) 497 if (GNUNET_OK == allowed)
502 return; /* we're done */ 498 return; /* we're done */
503 GNUNET_STATISTICS_update (GST_stats, 499 GNUNET_STATISTICS_update (GST_stats,
504 gettext_noop ("# disconnects due to blacklist"), 500 gettext_noop ("# disconnects due to blacklist"),
505 1, 501 1,
506 GNUNET_NO); 502 GNUNET_NO);
507 GST_neighbours_force_disconnect (peer); 503 GST_neighbours_force_disconnect (peer);
@@ -666,7 +662,7 @@ GST_blacklist_handle_reply (void *cls,
666 GNUNET_CONTAINER_DLL_remove (bc_head, 662 GNUNET_CONTAINER_DLL_remove (bc_head,
667 bc_tail, 663 bc_tail,
668 bc); 664 bc);
669 bc->cont (bc->cont_cls, 665 bc->cont (bc->cont_cls,
670 &bc->peer, 666 &bc->peer,
671 bc->address, 667 bc->address,
672 bc->session, 668 bc->session,
@@ -687,7 +683,7 @@ GST_blacklist_handle_reply (void *cls,
687 GNUNET_OK); 683 GNUNET_OK);
688 bl->call_receive_done = GNUNET_NO; 684 bl->call_receive_done = GNUNET_NO;
689 bc->bl_pos = bl->next; 685 bc->bl_pos = bl->next;
690 bc->task = GNUNET_SCHEDULER_add_now (&do_blacklist_check, 686 bc->task = GNUNET_SCHEDULER_add_now (&do_blacklist_check,
691 bc); 687 bc);
692 } 688 }
693 } 689 }
@@ -695,7 +691,7 @@ GST_blacklist_handle_reply (void *cls,
695 for (bc = bc_head; bc != NULL; bc = bc->next) 691 for (bc = bc_head; bc != NULL; bc = bc->next)
696 if ((bc->bl_pos == bl) && (NULL == bc->task)) 692 if ((bc->bl_pos == bl) && (NULL == bc->task))
697 { 693 {
698 bc->task = GNUNET_SCHEDULER_add_now (&do_blacklist_check, 694 bc->task = GNUNET_SCHEDULER_add_now (&do_blacklist_check,
699 bc); 695 bc);
700 break; 696 break;
701 } 697 }
@@ -749,7 +745,7 @@ GST_blacklist_abort_matching (const struct GNUNET_HELLO_Address *address,
749 struct GST_BlacklistCheck *bc; 745 struct GST_BlacklistCheck *bc;
750 struct GST_BlacklistCheck *n; 746 struct GST_BlacklistCheck *n;
751 747
752 n = bc_head; 748 n = bc_head;
753 while (NULL != (bc = n)) 749 while (NULL != (bc = n))
754 { 750 {
755 n = bc->next; 751 n = bc->next;
@@ -853,15 +849,15 @@ GST_blacklist_test_allowed (const struct GNUNET_PeerIdentity *peer,
853 /* Disallowed by config, disapprove instantly */ 849 /* Disallowed by config, disapprove instantly */
854 GNUNET_STATISTICS_update (GST_stats, 850 GNUNET_STATISTICS_update (GST_stats,
855 gettext_noop ("# disconnects due to blacklist"), 851 gettext_noop ("# disconnects due to blacklist"),
856 1, 852 1,
857 GNUNET_NO); 853 GNUNET_NO);
858 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 854 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
859 _("Disallowing connection to peer `%s' on transport %s\n"), 855 _("Disallowing connection to peer `%s' on transport %s\n"),
860 GNUNET_i2s (peer), 856 GNUNET_i2s (peer),
861 (NULL != transport_name) ? transport_name : "unspecified"); 857 (NULL != transport_name) ? transport_name : "unspecified");
862 if (NULL != cont) 858 if (NULL != cont)
863 cont (cont_cls, 859 cont (cont_cls,
864 peer, 860 peer,
865 address, 861 address,
866 session, 862 session,
867 GNUNET_NO); 863 GNUNET_NO);
@@ -886,7 +882,7 @@ GST_blacklist_test_allowed (const struct GNUNET_PeerIdentity *peer,
886 882
887 /* need to query blacklist clients */ 883 /* need to query blacklist clients */
888 bc = GNUNET_new (struct GST_BlacklistCheck); 884 bc = GNUNET_new (struct GST_BlacklistCheck);
889 GNUNET_CONTAINER_DLL_insert (bc_head, 885 GNUNET_CONTAINER_DLL_insert (bc_head,
890 bc_tail, 886 bc_tail,
891 bc); 887 bc);
892 bc->peer = *peer; 888 bc->peer = *peer;