diff options
Diffstat (limited to 'src/transport')
-rw-r--r-- | src/transport/gnunet-service-transport.c | 14 | ||||
-rw-r--r-- | src/transport/gnunet-service-transport_ats.c | 11 | ||||
-rw-r--r-- | src/transport/gnunet-service-transport_neighbours.c | 5 | ||||
-rw-r--r-- | src/transport/gnunet-service-transport_validation.c | 34 | ||||
-rw-r--r-- | src/transport/test_transport_testing_restart.c | 3 | ||||
-rw-r--r-- | src/transport/test_transport_testing_startstop.c | 3 | ||||
-rw-r--r-- | src/transport/transport-testing.c | 7 |
7 files changed, 58 insertions, 19 deletions
diff --git a/src/transport/gnunet-service-transport.c b/src/transport/gnunet-service-transport.c index ec4d82164..124260c41 100644 --- a/src/transport/gnunet-service-transport.c +++ b/src/transport/gnunet-service-transport.c | |||
@@ -541,6 +541,13 @@ client_disconnect_cb (void *cls, | |||
541 | GNUNET_CONTAINER_multipeermap_iterate (active_stccs, | 541 | GNUNET_CONTAINER_multipeermap_iterate (active_stccs, |
542 | &mark_match_down, | 542 | &mark_match_down, |
543 | tc); | 543 | tc); |
544 | for (struct AddressToStringContext *cur = a2s_head; | ||
545 | NULL != cur; | ||
546 | cur = cur->next) | ||
547 | { | ||
548 | if (cur->tc == tc) | ||
549 | cur->tc = NULL; | ||
550 | } | ||
544 | GNUNET_CONTAINER_DLL_remove (clients_head, | 551 | GNUNET_CONTAINER_DLL_remove (clients_head, |
545 | clients_tail, | 552 | clients_tail, |
546 | tc); | 553 | tc); |
@@ -681,6 +688,8 @@ handle_client_hello (void *cls, | |||
681 | { | 688 | { |
682 | struct TransportClient *tc = cls; | 689 | struct TransportClient *tc = cls; |
683 | 690 | ||
691 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, | ||
692 | "Received HELLO message\n"); | ||
684 | GST_validation_handle_hello (message); | 693 | GST_validation_handle_hello (message); |
685 | GNUNET_SERVICE_client_continue (tc->client); | 694 | GNUNET_SERVICE_client_continue (tc->client); |
686 | } | 695 | } |
@@ -864,6 +873,8 @@ transmit_address_to_client (void *cls, | |||
864 | 873 | ||
865 | GNUNET_assert ( (GNUNET_OK == res) || | 874 | GNUNET_assert ( (GNUNET_OK == res) || |
866 | (GNUNET_SYSERR == res) ); | 875 | (GNUNET_SYSERR == res) ); |
876 | if (NULL == actx->tc) | ||
877 | return; | ||
867 | if (NULL == buf) | 878 | if (NULL == buf) |
868 | { | 879 | { |
869 | env = GNUNET_MQ_msg (atsm, | 880 | env = GNUNET_MQ_msg (atsm, |
@@ -878,6 +889,7 @@ transmit_address_to_client (void *cls, | |||
878 | GNUNET_CONTAINER_DLL_remove (a2s_head, | 889 | GNUNET_CONTAINER_DLL_remove (a2s_head, |
879 | a2s_tail, | 890 | a2s_tail, |
880 | actx); | 891 | actx); |
892 | GNUNET_free (actx); | ||
881 | return; | 893 | return; |
882 | } | 894 | } |
883 | if (GNUNET_SYSERR == res) | 895 | if (GNUNET_SYSERR == res) |
@@ -2792,7 +2804,7 @@ run (void *cls, | |||
2792 | GNUNET_assert (NULL != GST_my_private_key); | 2804 | GNUNET_assert (NULL != GST_my_private_key); |
2793 | 2805 | ||
2794 | GNUNET_log(GNUNET_ERROR_TYPE_INFO, | 2806 | GNUNET_log(GNUNET_ERROR_TYPE_INFO, |
2795 | "My identity is `%4s'\n", | 2807 | "My identity is `%s'\n", |
2796 | GNUNET_i2s_full (&GST_my_identity)); | 2808 | GNUNET_i2s_full (&GST_my_identity)); |
2797 | 2809 | ||
2798 | GNUNET_SCHEDULER_add_shutdown (&shutdown_task, | 2810 | GNUNET_SCHEDULER_add_shutdown (&shutdown_task, |
diff --git a/src/transport/gnunet-service-transport_ats.c b/src/transport/gnunet-service-transport_ats.c index a20c998b3..01e115bfc 100644 --- a/src/transport/gnunet-service-transport_ats.c +++ b/src/transport/gnunet-service-transport_ats.c | |||
@@ -337,15 +337,10 @@ GST_ats_block_address (const struct GNUNET_HELLO_Address *address, | |||
337 | return; /* our own, ignore! */ | 337 | return; /* our own, ignore! */ |
338 | ai = find_ai (address, | 338 | ai = find_ai (address, |
339 | session); | 339 | session); |
340 | if (NULL == ai) | 340 | if (NULL == ai || NULL == ai->ar) |
341 | { | 341 | { |
342 | GNUNET_assert (0); | 342 | /* The address is already gone/blocked, this can happen during a blacklist |
343 | return; | 343 | * callback. */ |
344 | } | ||
345 | if (NULL == ai->ar) | ||
346 | { | ||
347 | /* already blocked, how did it get used!? */ | ||
348 | GNUNET_break (0); | ||
349 | return; | 344 | return; |
350 | } | 345 | } |
351 | ai->back_off = GNUNET_TIME_STD_BACKOFF (ai->back_off); | 346 | ai->back_off = GNUNET_TIME_STD_BACKOFF (ai->back_off); |
diff --git a/src/transport/gnunet-service-transport_neighbours.c b/src/transport/gnunet-service-transport_neighbours.c index 19f5fd081..ac72a667c 100644 --- a/src/transport/gnunet-service-transport_neighbours.c +++ b/src/transport/gnunet-service-transport_neighbours.c | |||
@@ -2433,7 +2433,10 @@ switch_address_bl_check_cont (void *cls, | |||
2433 | goto cleanup; | 2433 | goto cleanup; |
2434 | 2434 | ||
2435 | papi = GST_plugins_find (address->transport_name); | 2435 | papi = GST_plugins_find (address->transport_name); |
2436 | GNUNET_assert (NULL != papi); | 2436 | if (NULL == papi) { |
2437 | /* This can happen during shutdown. */ | ||
2438 | goto cleanup; | ||
2439 | } | ||
2437 | 2440 | ||
2438 | if (GNUNET_NO == result) | 2441 | if (GNUNET_NO == result) |
2439 | { | 2442 | { |
diff --git a/src/transport/gnunet-service-transport_validation.c b/src/transport/gnunet-service-transport_validation.c index 4a6d427be..cd5aeb5e2 100644 --- a/src/transport/gnunet-service-transport_validation.c +++ b/src/transport/gnunet-service-transport_validation.c | |||
@@ -784,15 +784,24 @@ revalidate_address (void *cls) | |||
784 | GNUNET_STATISTICS_update (GST_stats, | 784 | GNUNET_STATISTICS_update (GST_stats, |
785 | gettext_noop ("# address revalidations started"), 1, | 785 | gettext_noop ("# address revalidations started"), 1, |
786 | GNUNET_NO); | 786 | GNUNET_NO); |
787 | if (NULL != ve->bc) | ||
788 | { | ||
789 | GST_blacklist_test_cancel (ve->bc); | ||
790 | ve->bc = NULL; | ||
791 | } | ||
787 | bc = GST_blacklist_test_allowed (&ve->address->peer, | 792 | bc = GST_blacklist_test_allowed (&ve->address->peer, |
788 | ve->address->transport_name, | 793 | ve->address->transport_name, |
789 | &transmit_ping_if_allowed, | 794 | &transmit_ping_if_allowed, |
790 | ve, | 795 | ve, |
791 | NULL, | 796 | NULL, |
792 | NULL); | 797 | NULL); |
793 | if (NULL != bc) | 798 | if (NULL != bc) |
794 | ve->bc = bc; /* only set 'bc' if 'transmit_ping_if_allowed' was not already | 799 | { |
795 | * called... */ | 800 | /* If transmit_ping_if_allowed was already called it may have freed ve, |
801 | * so only set ve->bc if it has not been called. | ||
802 | */ | ||
803 | ve->bc = bc; | ||
804 | } | ||
796 | } | 805 | } |
797 | 806 | ||
798 | 807 | ||
@@ -1338,6 +1347,9 @@ GST_validation_handle_address (const struct GNUNET_HELLO_Address *address) | |||
1338 | if (NULL == papi) | 1347 | if (NULL == papi) |
1339 | { | 1348 | { |
1340 | /* This plugin is currently unvailable ... ignore */ | 1349 | /* This plugin is currently unvailable ... ignore */ |
1350 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, | ||
1351 | "No plugin available for %s\n", | ||
1352 | address->transport_name); | ||
1341 | return; | 1353 | return; |
1342 | } | 1354 | } |
1343 | ve = find_validation_entry (address); | 1355 | ve = find_validation_entry (address); |
@@ -1349,6 +1361,13 @@ GST_validation_handle_address (const struct GNUNET_HELLO_Address *address) | |||
1349 | GNUNET_i2s (&ve->address->peer)); | 1361 | GNUNET_i2s (&ve->address->peer)); |
1350 | ve->revalidation_task = GNUNET_SCHEDULER_add_now (&revalidate_address, ve); | 1362 | ve->revalidation_task = GNUNET_SCHEDULER_add_now (&revalidate_address, ve); |
1351 | } | 1363 | } |
1364 | else | ||
1365 | { | ||
1366 | GNUNET_log (GNUNET_ERROR_TYPE_INFO, | ||
1367 | "Validation already running for address `%s' of %s\n", | ||
1368 | GST_plugins_a2s (ve->address), | ||
1369 | GNUNET_i2s (&ve->address->peer)); | ||
1370 | } | ||
1352 | } | 1371 | } |
1353 | 1372 | ||
1354 | 1373 | ||
@@ -1648,6 +1667,9 @@ GST_validation_handle_hello (const struct GNUNET_MessageHeader *hello) | |||
1648 | sizeof (struct GNUNET_PeerIdentity))) | 1667 | sizeof (struct GNUNET_PeerIdentity))) |
1649 | { | 1668 | { |
1650 | /* got our own HELLO, how boring */ | 1669 | /* got our own HELLO, how boring */ |
1670 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
1671 | "Validation received our own HELLO (%s), ignoring\n", | ||
1672 | GNUNET_i2s (&pid)); | ||
1651 | return GNUNET_OK; | 1673 | return GNUNET_OK; |
1652 | } | 1674 | } |
1653 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 1675 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
diff --git a/src/transport/test_transport_testing_restart.c b/src/transport/test_transport_testing_restart.c index 595177e03..06275055d 100644 --- a/src/transport/test_transport_testing_restart.c +++ b/src/transport/test_transport_testing_restart.c | |||
@@ -71,7 +71,8 @@ restart_cb (void *cls) | |||
71 | p->no, | 71 | p->no, |
72 | GNUNET_i2s (&p->id)); | 72 | GNUNET_i2s (&p->id)); |
73 | ret = 0; | 73 | ret = 0; |
74 | end (); | 74 | GNUNET_SCHEDULER_add_now (&end, |
75 | NULL); | ||
75 | } | 76 | } |
76 | 77 | ||
77 | 78 | ||
diff --git a/src/transport/test_transport_testing_startstop.c b/src/transport/test_transport_testing_startstop.c index 6ac0250cc..931e922c4 100644 --- a/src/transport/test_transport_testing_startstop.c +++ b/src/transport/test_transport_testing_startstop.c | |||
@@ -71,7 +71,8 @@ start_cb (void *cls) | |||
71 | p->no, | 71 | p->no, |
72 | GNUNET_i2s (&p->id)); | 72 | GNUNET_i2s (&p->id)); |
73 | ret = 0; | 73 | ret = 0; |
74 | end (); | 74 | GNUNET_SCHEDULER_add_now (&end, |
75 | NULL); | ||
75 | } | 76 | } |
76 | 77 | ||
77 | 78 | ||
diff --git a/src/transport/transport-testing.c b/src/transport/transport-testing.c index 2aa6cdbb0..68cda3bd7 100644 --- a/src/transport/transport-testing.c +++ b/src/transport/transport-testing.c | |||
@@ -384,7 +384,7 @@ GNUNET_TRANSPORT_TESTING_start_peer (struct GNUNET_TRANSPORT_TESTING_Handle *tth | |||
384 | { | 384 | { |
385 | char *emsg = NULL; | 385 | char *emsg = NULL; |
386 | struct GNUNET_TRANSPORT_TESTING_PeerContext *p; | 386 | struct GNUNET_TRANSPORT_TESTING_PeerContext *p; |
387 | struct GNUNET_PeerIdentity *dummy; | 387 | struct GNUNET_PeerIdentity dummy; |
388 | unsigned int i; | 388 | unsigned int i; |
389 | 389 | ||
390 | if (GNUNET_NO == GNUNET_DISK_file_test (cfgname)) | 390 | if (GNUNET_NO == GNUNET_DISK_file_test (cfgname)) |
@@ -678,6 +678,11 @@ GNUNET_TRANSPORT_TESTING_stop_peer (struct GNUNET_TRANSPORT_TESTING_PeerContext | |||
678 | GNUNET_CONFIGURATION_destroy (p->cfg); | 678 | GNUNET_CONFIGURATION_destroy (p->cfg); |
679 | p->cfg = NULL; | 679 | p->cfg = NULL; |
680 | } | 680 | } |
681 | if (NULL != p->handlers) | ||
682 | { | ||
683 | GNUNET_free (p->handlers); | ||
684 | p->handlers = NULL; | ||
685 | } | ||
681 | GNUNET_CONTAINER_DLL_remove (tth->p_head, | 686 | GNUNET_CONTAINER_DLL_remove (tth->p_head, |
682 | tth->p_tail, | 687 | tth->p_tail, |
683 | p); | 688 | p); |