aboutsummaryrefslogtreecommitdiff
path: root/src/transport
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport')
-rw-r--r--src/transport/gnunet-service-transport.c5
-rw-r--r--src/transport/gnunet-service-transport_validation.c1
-rw-r--r--src/transport/gnunet-transport-profiler.c14
-rw-r--r--src/transport/gnunet-transport.c34
-rw-r--r--src/transport/plugin_transport_http_client.c21
-rw-r--r--src/transport/plugin_transport_http_server.c56
-rw-r--r--src/transport/plugin_transport_udp.c10
-rw-r--r--src/transport/plugin_transport_unix.c12
-rw-r--r--src/transport/test_transport_api.c5
-rw-r--r--src/transport/test_transport_api_bidirectional_connect.c8
-rw-r--r--src/transport/test_transport_api_blacklisting.c5
-rw-r--r--src/transport/test_transport_api_disconnect.c11
-rw-r--r--src/transport/test_transport_api_http_reverse_peer2.conf1
-rw-r--r--src/transport/test_transport_api_https_peer1.conf1
-rw-r--r--src/transport/test_transport_api_https_peer2.conf1
-rw-r--r--src/transport/test_transport_api_limited_sockets.c6
-rw-r--r--src/transport/test_transport_api_manipulation_cfg.c10
-rw-r--r--src/transport/test_transport_api_manipulation_recv_tcp.c5
-rw-r--r--src/transport/test_transport_api_manipulation_send_tcp.c4
-rw-r--r--src/transport/test_transport_api_monitor_peers.c5
-rw-r--r--src/transport/test_transport_api_monitor_validation.c5
-rw-r--r--src/transport/test_transport_api_restart_1peer.c5
-rw-r--r--src/transport/test_transport_api_restart_2peers.c6
-rw-r--r--src/transport/test_transport_api_timeout.c6
-rw-r--r--src/transport/test_transport_startonly.c13
-rw-r--r--src/transport/transport-testing.c6
-rw-r--r--src/transport/transport_api.c7
27 files changed, 63 insertions, 200 deletions
diff --git a/src/transport/gnunet-service-transport.c b/src/transport/gnunet-service-transport.c
index 9fde3d83e..119e5e564 100644
--- a/src/transport/gnunet-service-transport.c
+++ b/src/transport/gnunet-service-transport.c
@@ -848,9 +848,8 @@ run (void *cls,
848 "My identity is `%4s'\n", 848 "My identity is `%4s'\n",
849 GNUNET_i2s_full (&GST_my_identity)); 849 GNUNET_i2s_full (&GST_my_identity));
850 850
851 GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, 851 GNUNET_SCHEDULER_add_shutdown (&shutdown_task,
852 &shutdown_task, 852 NULL);
853 NULL);
854 if (NULL == GST_peerinfo) 853 if (NULL == GST_peerinfo)
855 { 854 {
856 GNUNET_log(GNUNET_ERROR_TYPE_ERROR, 855 GNUNET_log(GNUNET_ERROR_TYPE_ERROR,
diff --git a/src/transport/gnunet-service-transport_validation.c b/src/transport/gnunet-service-transport_validation.c
index 836aa418c..6ea5394bf 100644
--- a/src/transport/gnunet-service-transport_validation.c
+++ b/src/transport/gnunet-service-transport_validation.c
@@ -873,7 +873,6 @@ add_valid_address (void *cls,
873 validation_entry_changed (ve, 873 validation_entry_changed (ve,
874 GNUNET_TRANSPORT_VS_UPDATE); 874 GNUNET_TRANSPORT_VS_UPDATE);
875 memset (&prop, 0, sizeof (prop)); 875 memset (&prop, 0, sizeof (prop));
876 GNUNET_break (GNUNET_ATS_NET_UNSPECIFIED != ve->network);
877 prop.scope = ve->network; 876 prop.scope = ve->network;
878 prop.delay = GNUNET_TIME_relative_divide (ve->latency, 2); 877 prop.delay = GNUNET_TIME_relative_divide (ve->latency, 2);
879 if (GNUNET_YES != ve->known_to_ats) 878 if (GNUNET_YES != ve->known_to_ats)
diff --git a/src/transport/gnunet-transport-profiler.c b/src/transport/gnunet-transport-profiler.c
index 624d1a16c..af47c5c56 100644
--- a/src/transport/gnunet-transport-profiler.c
+++ b/src/transport/gnunet-transport-profiler.c
@@ -146,11 +146,6 @@ static struct GNUNET_TRANSPORT_Blacklist *bl_handle;
146static struct GNUNET_PeerIdentity pid; 146static struct GNUNET_PeerIdentity pid;
147 147
148/** 148/**
149 * Task scheduled for cleanup / termination of the process.
150 */
151static struct GNUNET_SCHEDULER_Task * end;
152
153/**
154 * Selected level of verbosity. 149 * Selected level of verbosity.
155 */ 150 */
156static int verbosity; 151static int verbosity;
@@ -380,9 +375,7 @@ iteration_done ()
380 if (it_count == benchmark_iterations) 375 if (it_count == benchmark_iterations)
381 { 376 {
382 benchmark_running = GNUNET_NO; 377 benchmark_running = GNUNET_NO;
383 if (NULL != end) 378 GNUNET_SCHEDULER_shutdown ();
384 GNUNET_SCHEDULER_cancel (end);
385 end = GNUNET_SCHEDULER_add_now (&shutdown_task, NULL);
386 return; 379 return;
387 } 380 }
388 else 381 else
@@ -570,9 +563,8 @@ testservice_task (void *cls, int result)
570 ats_sh = GNUNET_ATS_connectivity_suggest (ats, 563 ats_sh = GNUNET_ATS_connectivity_suggest (ats,
571 &pid, 564 &pid,
572 1); 565 1);
573 end = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, 566 GNUNET_SCHEDULER_add_shutdown (&shutdown_task,
574 &shutdown_task, 567 NULL);
575 NULL);
576} 568}
577 569
578 570
diff --git a/src/transport/gnunet-transport.c b/src/transport/gnunet-transport.c
index bed9bdc85..cbddee905 100644
--- a/src/transport/gnunet-transport.c
+++ b/src/transport/gnunet-transport.c
@@ -607,9 +607,7 @@ operation_timeout (void *cls)
607 FPRINTF (stdout, 607 FPRINTF (stdout,
608 _("Failed to connect to `%s'\n"), 608 _("Failed to connect to `%s'\n"),
609 GNUNET_i2s_full (&pid)); 609 GNUNET_i2s_full (&pid));
610 if (NULL != end) 610 GNUNET_SCHEDULER_shutdown ();
611 GNUNET_SCHEDULER_cancel (end);
612 end = GNUNET_SCHEDULER_add_now (&shutdown_task, NULL);
613 ret = 1; 611 ret = 1;
614 return; 612 return;
615 } 613 }
@@ -633,9 +631,7 @@ operation_timeout (void *cls)
633 FPRINTF (stdout, 631 FPRINTF (stdout,
634 "%s", 632 "%s",
635 _("Failed to list connections, timeout occured\n")); 633 _("Failed to list connections, timeout occured\n"));
636 if (NULL != end) 634 GNUNET_SCHEDULER_shutdown ();
637 GNUNET_SCHEDULER_cancel (end);
638 end = GNUNET_SCHEDULER_add_now (&shutdown_task, NULL);
639 ret = 1; 635 ret = 1;
640 return; 636 return;
641 } 637 }
@@ -851,18 +847,13 @@ process_validation_string (void *cls,
851 GNUNET_free (vc); 847 GNUNET_free (vc);
852 if ((0 == address_resolutions) && (iterate_validation)) 848 if ((0 == address_resolutions) && (iterate_validation))
853 { 849 {
854 if (NULL != end)
855 {
856 GNUNET_SCHEDULER_cancel (end);
857 end = NULL;
858 }
859 if (NULL != op_timeout) 850 if (NULL != op_timeout)
860 { 851 {
861 GNUNET_SCHEDULER_cancel (op_timeout); 852 GNUNET_SCHEDULER_cancel (op_timeout);
862 op_timeout = NULL; 853 op_timeout = NULL;
863 } 854 }
864 ret = 0; 855 ret = 0;
865 end = GNUNET_SCHEDULER_add_now (&shutdown_task, NULL); 856 GNUNET_SCHEDULER_shutdown ();
866 } 857 }
867} 858}
868 859
@@ -937,9 +928,7 @@ process_validation_cb (void *cls,
937 return; 928 return;
938 } 929 }
939 vic = NULL; 930 vic = NULL;
940 if (NULL != end) 931 GNUNET_SCHEDULER_shutdown ();
941 GNUNET_SCHEDULER_cancel (end);
942 end = GNUNET_SCHEDULER_add_now (&shutdown_task, NULL);
943 return; 932 return;
944 } 933 }
945 resolve_validation_address (address, 934 resolve_validation_address (address,
@@ -1364,19 +1353,13 @@ process_peer_string (void *cls,
1364 GNUNET_free (rc); 1353 GNUNET_free (rc);
1365 if ((0 == address_resolutions) && (iterate_connections)) 1354 if ((0 == address_resolutions) && (iterate_connections))
1366 { 1355 {
1367 if (NULL != end)
1368 {
1369 GNUNET_SCHEDULER_cancel (end);
1370 end = NULL;
1371 }
1372 if (NULL != op_timeout) 1356 if (NULL != op_timeout)
1373 { 1357 {
1374 GNUNET_SCHEDULER_cancel (op_timeout); 1358 GNUNET_SCHEDULER_cancel (op_timeout);
1375 op_timeout = NULL; 1359 op_timeout = NULL;
1376 } 1360 }
1377 ret = 0; 1361 ret = 0;
1378 end = GNUNET_SCHEDULER_add_now (&shutdown_task, 1362 GNUNET_SCHEDULER_shutdown ();
1379 NULL);
1380 } 1363 }
1381} 1364}
1382 1365
@@ -1950,10 +1933,9 @@ testservice_task (void *cls,
1950 GNUNET_break(0); 1933 GNUNET_break(0);
1951 return; 1934 return;
1952 } 1935 }
1953 1936
1954 end = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, 1937 GNUNET_SCHEDULER_add_shutdown (&shutdown_task,
1955 &shutdown_task, 1938 NULL);
1956 NULL);
1957} 1939}
1958 1940
1959 1941
diff --git a/src/transport/plugin_transport_http_client.c b/src/transport/plugin_transport_http_client.c
index 2b0b8939e..132406799 100644
--- a/src/transport/plugin_transport_http_client.c
+++ b/src/transport/plugin_transport_http_client.c
@@ -226,17 +226,17 @@ struct GNUNET_ATS_Session
226 /** 226 /**
227 * Session timeout task 227 * Session timeout task
228 */ 228 */
229 struct GNUNET_SCHEDULER_Task * put_disconnect_task; 229 struct GNUNET_SCHEDULER_Task *put_disconnect_task;
230 230
231 /** 231 /**
232 * Session timeout task 232 * Session timeout task
233 */ 233 */
234 struct GNUNET_SCHEDULER_Task * timeout_task; 234 struct GNUNET_SCHEDULER_Task *timeout_task;
235 235
236 /** 236 /**
237 * Task to wake up client receive handle when receiving is allowed again 237 * Task to wake up client receive handle when receiving is allowed again
238 */ 238 */
239 struct GNUNET_SCHEDULER_Task * recv_wakeup_task; 239 struct GNUNET_SCHEDULER_Task *recv_wakeup_task;
240 240
241 /** 241 /**
242 * Absolute time when to receive data again. 242 * Absolute time when to receive data again.
@@ -1130,12 +1130,8 @@ static void
1130client_wake_up (void *cls) 1130client_wake_up (void *cls)
1131{ 1131{
1132 struct GNUNET_ATS_Session *s = cls; 1132 struct GNUNET_ATS_Session *s = cls;
1133 const struct GNUNET_SCHEDULER_TaskContext *tc;
1134 1133
1135 s->recv_wakeup_task = NULL; 1134 s->recv_wakeup_task = NULL;
1136 tc = GNUNET_SCHEDULER_get_task_context ();
1137 if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
1138 return;
1139 LOG (GNUNET_ERROR_TYPE_DEBUG, 1135 LOG (GNUNET_ERROR_TYPE_DEBUG,
1140 "Session %p/request %p: Waking up GET handle\n", 1136 "Session %p/request %p: Waking up GET handle\n",
1141 s, s->get.easyhandle); 1137 s, s->get.easyhandle);
@@ -1301,13 +1297,8 @@ client_run (void *cls)
1301 CURLMsg *msg; 1297 CURLMsg *msg;
1302 int put_request; /* GNUNET_YES if easy handle is put, GNUNET_NO for get */ 1298 int put_request; /* GNUNET_YES if easy handle is put, GNUNET_NO for get */
1303 int msgs_left; 1299 int msgs_left;
1304 const struct GNUNET_SCHEDULER_TaskContext *tc;
1305 1300
1306 plugin->client_perform_task = NULL; 1301 plugin->client_perform_task = NULL;
1307 tc = GNUNET_SCHEDULER_get_task_context ();
1308 if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
1309 return;
1310
1311 /* While data are available or timeouts occured */ 1302 /* While data are available or timeouts occured */
1312 do 1303 do
1313 { 1304 {
@@ -2379,8 +2370,10 @@ http_client_plugin_update_inbound_delay (void *cls,
2379 if (s->recv_wakeup_task != NULL) 2370 if (s->recv_wakeup_task != NULL)
2380 { 2371 {
2381 GNUNET_SCHEDULER_cancel (s->recv_wakeup_task); 2372 GNUNET_SCHEDULER_cancel (s->recv_wakeup_task);
2382 s->recv_wakeup_task = GNUNET_SCHEDULER_add_delayed (delay, 2373 s->recv_wakeup_task
2383 &client_wake_up, s); 2374 = GNUNET_SCHEDULER_add_delayed (delay,
2375 &client_wake_up,
2376 s);
2384 } 2377 }
2385} 2378}
2386 2379
diff --git a/src/transport/plugin_transport_http_server.c b/src/transport/plugin_transport_http_server.c
index dfd0294e5..c43124c2e 100644
--- a/src/transport/plugin_transport_http_server.c
+++ b/src/transport/plugin_transport_http_server.c
@@ -374,17 +374,17 @@ struct HTTP_Server_Plugin
374 /** 374 /**
375 * MHD IPv4 task 375 * MHD IPv4 task
376 */ 376 */
377 struct GNUNET_SCHEDULER_Task * server_v4_task; 377 struct GNUNET_SCHEDULER_Task *server_v4_task;
378 378
379 /** 379 /**
380 * MHD IPv6 task 380 * MHD IPv6 task
381 */ 381 */
382 struct GNUNET_SCHEDULER_Task * server_v6_task; 382 struct GNUNET_SCHEDULER_Task *server_v6_task;
383 383
384 /** 384 /**
385 * Task calling transport service about external address 385 * Task calling transport service about external address
386 */ 386 */
387 struct GNUNET_SCHEDULER_Task * notify_ext_task; 387 struct GNUNET_SCHEDULER_Task *notify_ext_task;
388 388
389 /** 389 /**
390 * Notify transport only about external address 390 * Notify transport only about external address
@@ -496,12 +496,8 @@ static void
496server_wake_up (void *cls) 496server_wake_up (void *cls)
497{ 497{
498 struct GNUNET_ATS_Session *s = cls; 498 struct GNUNET_ATS_Session *s = cls;
499 const struct GNUNET_SCHEDULER_TaskContext *tc;
500 499
501 tc = GNUNET_SCHEDULER_get_task_context ();
502 s->recv_wakeup_task = NULL; 500 s->recv_wakeup_task = NULL;
503 if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
504 return;
505 LOG (GNUNET_ERROR_TYPE_DEBUG, 501 LOG (GNUNET_ERROR_TYPE_DEBUG,
506 "Session %p: Waking up PUT handle\n", 502 "Session %p: Waking up PUT handle\n",
507 s); 503 s);
@@ -913,12 +909,8 @@ static void
913server_v4_run (void *cls) 909server_v4_run (void *cls)
914{ 910{
915 struct HTTP_Server_Plugin *plugin = cls; 911 struct HTTP_Server_Plugin *plugin = cls;
916 const struct GNUNET_SCHEDULER_TaskContext *tc;
917 912
918 plugin->server_v4_task = NULL; 913 plugin->server_v4_task = NULL;
919 tc = GNUNET_SCHEDULER_get_task_context ();
920 if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
921 return;
922 plugin->server_v4_immediately = GNUNET_NO; 914 plugin->server_v4_immediately = GNUNET_NO;
923 GNUNET_assert (MHD_YES == MHD_run (plugin->server_v4)); 915 GNUNET_assert (MHD_YES == MHD_run (plugin->server_v4));
924 server_reschedule (plugin, plugin->server_v4, GNUNET_NO); 916 server_reschedule (plugin, plugin->server_v4, GNUNET_NO);
@@ -935,12 +927,8 @@ static void
935server_v6_run (void *cls) 927server_v6_run (void *cls)
936{ 928{
937 struct HTTP_Server_Plugin *plugin = cls; 929 struct HTTP_Server_Plugin *plugin = cls;
938 const struct GNUNET_SCHEDULER_TaskContext *tc;
939 930
940 plugin->server_v6_task = NULL; 931 plugin->server_v6_task = NULL;
941 tc = GNUNET_SCHEDULER_get_task_context ();
942 if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
943 return;
944 plugin->server_v6_immediately = GNUNET_NO; 932 plugin->server_v6_immediately = GNUNET_NO;
945 GNUNET_assert (MHD_YES == MHD_run (plugin->server_v6)); 933 GNUNET_assert (MHD_YES == MHD_run (plugin->server_v6));
946 server_reschedule (plugin, plugin->server_v6, GNUNET_NO); 934 server_reschedule (plugin, plugin->server_v6, GNUNET_NO);
@@ -1869,8 +1857,10 @@ server_access_cb (void *cls,
1869 GNUNET_assert(s->server_recv->mhd_conn == mhd_connection); 1857 GNUNET_assert(s->server_recv->mhd_conn == mhd_connection);
1870 MHD_suspend_connection (s->server_recv->mhd_conn); 1858 MHD_suspend_connection (s->server_recv->mhd_conn);
1871 if (NULL == s->recv_wakeup_task) 1859 if (NULL == s->recv_wakeup_task)
1872 s->recv_wakeup_task = GNUNET_SCHEDULER_add_delayed (delay, 1860 s->recv_wakeup_task
1873 &server_wake_up, s); 1861 = GNUNET_SCHEDULER_add_delayed (delay,
1862 &server_wake_up,
1863 s);
1874 } 1864 }
1875 return MHD_YES; 1865 return MHD_YES;
1876 } 1866 }
@@ -2851,18 +2841,12 @@ server_notify_external_hostname (void *cls)
2851 size_t ext_addr_len; 2841 size_t ext_addr_len;
2852 unsigned int urlen; 2842 unsigned int urlen;
2853 char *url; 2843 char *url;
2854 const struct GNUNET_SCHEDULER_TaskContext *tc;
2855 2844
2856 plugin->notify_ext_task = NULL; 2845 plugin->notify_ext_task = NULL;
2857 tc = GNUNET_SCHEDULER_get_task_context (); 2846 GNUNET_asprintf (&url,
2858 if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) 2847 "%s://%s",
2859 return; 2848 plugin->protocol,
2860 2849 plugin->external_hostname);
2861 GNUNET_asprintf(&url,
2862 "%s://%s",
2863 plugin->protocol,
2864 plugin->external_hostname);
2865
2866 urlen = strlen (url) + 1; 2850 urlen = strlen (url) + 1;
2867 ext_addr = GNUNET_malloc (sizeof (struct HttpAddress) + urlen); 2851 ext_addr = GNUNET_malloc (sizeof (struct HttpAddress) + urlen);
2868 ext_addr->options = htonl (plugin->options); 2852 ext_addr->options = htonl (plugin->options);
@@ -2881,13 +2865,23 @@ server_notify_external_hostname (void *cls)
2881 "Enabling SSL verification for external hostname address `%s'\n", 2865 "Enabling SSL verification for external hostname address `%s'\n",
2882 plugin->external_hostname); 2866 plugin->external_hostname);
2883 plugin->ext_addr = GNUNET_HELLO_address_allocate (plugin->env->my_identity, 2867 plugin->ext_addr = GNUNET_HELLO_address_allocate (plugin->env->my_identity,
2884 "https_client", ext_addr, ext_addr_len, GNUNET_HELLO_ADDRESS_INFO_NONE ); 2868 "https_client",
2885 plugin->env->notify_address (plugin->env->cls, GNUNET_YES, plugin->ext_addr); 2869 ext_addr,
2870 ext_addr_len,
2871 GNUNET_HELLO_ADDRESS_INFO_NONE);
2872 plugin->env->notify_address (plugin->env->cls,
2873 GNUNET_YES,
2874 plugin->ext_addr);
2886 GNUNET_free (ext_addr); 2875 GNUNET_free (ext_addr);
2887#else 2876#else
2888 plugin->ext_addr = GNUNET_HELLO_address_allocate (plugin->env->my_identity, 2877 plugin->ext_addr = GNUNET_HELLO_address_allocate (plugin->env->my_identity,
2889 "http_client", ext_addr, ext_addr_len, GNUNET_HELLO_ADDRESS_INFO_NONE ); 2878 "http_client",
2890 plugin->env->notify_address (plugin->env->cls, GNUNET_YES, plugin->ext_addr); 2879 ext_addr,
2880 ext_addr_len,
2881 GNUNET_HELLO_ADDRESS_INFO_NONE);
2882 plugin->env->notify_address (plugin->env->cls,
2883 GNUNET_YES,
2884 plugin->ext_addr);
2891 GNUNET_free (ext_addr); 2885 GNUNET_free (ext_addr);
2892#endif 2886#endif
2893} 2887}
diff --git a/src/transport/plugin_transport_udp.c b/src/transport/plugin_transport_udp.c
index 89feb8f5c..b5706f024 100644
--- a/src/transport/plugin_transport_udp.c
+++ b/src/transport/plugin_transport_udp.c
@@ -3516,13 +3516,11 @@ udp_plugin_select_v4 (void *cls)
3516{ 3516{
3517 struct Plugin *plugin = cls; 3517 struct Plugin *plugin = cls;
3518 const struct GNUNET_SCHEDULER_TaskContext *tc; 3518 const struct GNUNET_SCHEDULER_TaskContext *tc;
3519 3519
3520 tc = GNUNET_SCHEDULER_get_task_context ();
3521 plugin->select_task_v4 = NULL; 3520 plugin->select_task_v4 = NULL;
3522 if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
3523 return;
3524 if (NULL == plugin->sockv4) 3521 if (NULL == plugin->sockv4)
3525 return; 3522 return;
3523 tc = GNUNET_SCHEDULER_get_task_context ();
3526 if ((0 != (tc->reason & GNUNET_SCHEDULER_REASON_READ_READY)) && 3524 if ((0 != (tc->reason & GNUNET_SCHEDULER_REASON_READ_READY)) &&
3527 (GNUNET_NETWORK_fdset_isset (tc->read_ready, 3525 (GNUNET_NETWORK_fdset_isset (tc->read_ready,
3528 plugin->sockv4))) 3526 plugin->sockv4)))
@@ -3547,12 +3545,10 @@ udp_plugin_select_v6 (void *cls)
3547 struct Plugin *plugin = cls; 3545 struct Plugin *plugin = cls;
3548 const struct GNUNET_SCHEDULER_TaskContext *tc; 3546 const struct GNUNET_SCHEDULER_TaskContext *tc;
3549 3547
3550 tc = GNUNET_SCHEDULER_get_task_context ();
3551 plugin->select_task_v6 = NULL; 3548 plugin->select_task_v6 = NULL;
3552 if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
3553 return;
3554 if (NULL == plugin->sockv6) 3549 if (NULL == plugin->sockv6)
3555 return; 3550 return;
3551 tc = GNUNET_SCHEDULER_get_task_context ();
3556 if ( (0 != (tc->reason & GNUNET_SCHEDULER_REASON_READ_READY)) && 3552 if ( (0 != (tc->reason & GNUNET_SCHEDULER_REASON_READ_READY)) &&
3557 (GNUNET_NETWORK_fdset_isset (tc->read_ready, 3553 (GNUNET_NETWORK_fdset_isset (tc->read_ready,
3558 plugin->sockv6)) ) 3554 plugin->sockv6)) )
diff --git a/src/transport/plugin_transport_unix.c b/src/transport/plugin_transport_unix.c
index e320785d4..d0566c2d3 100644
--- a/src/transport/plugin_transport_unix.c
+++ b/src/transport/plugin_transport_unix.c
@@ -1229,11 +1229,9 @@ unix_plugin_select_read (void *cls)
1229{ 1229{
1230 struct Plugin *plugin = cls; 1230 struct Plugin *plugin = cls;
1231 const struct GNUNET_SCHEDULER_TaskContext *tc; 1231 const struct GNUNET_SCHEDULER_TaskContext *tc;
1232 1232
1233 tc = GNUNET_SCHEDULER_get_task_context ();
1234 plugin->read_task = NULL; 1233 plugin->read_task = NULL;
1235 if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) 1234 tc = GNUNET_SCHEDULER_get_task_context ();
1236 return;
1237 if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_READ_READY)) 1235 if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_READ_READY))
1238 unix_plugin_do_read (plugin); 1236 unix_plugin_do_read (plugin);
1239 plugin->read_task = 1237 plugin->read_task =
@@ -1254,11 +1252,9 @@ unix_plugin_select_write (void *cls)
1254{ 1252{
1255 struct Plugin *plugin = cls; 1253 struct Plugin *plugin = cls;
1256 const struct GNUNET_SCHEDULER_TaskContext *tc; 1254 const struct GNUNET_SCHEDULER_TaskContext *tc;
1257 1255
1258 tc = GNUNET_SCHEDULER_get_task_context ();
1259 plugin->write_task = NULL; 1256 plugin->write_task = NULL;
1260 if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) 1257 tc = GNUNET_SCHEDULER_get_task_context ();
1261 return;
1262 if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_WRITE_READY)) 1258 if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_WRITE_READY))
1263 unix_plugin_do_write (plugin); 1259 unix_plugin_do_write (plugin);
1264 if (NULL == plugin->msg_head) 1260 if (NULL == plugin->msg_head)
diff --git a/src/transport/test_transport_api.c b/src/transport/test_transport_api.c
index 13333b371..528b8f2bf 100644
--- a/src/transport/test_transport_api.c
+++ b/src/transport/test_transport_api.c
@@ -228,12 +228,7 @@ notify_ready (void *cls, size_t size, void *buf)
228static void 228static void
229sendtask (void *cls) 229sendtask (void *cls)
230{ 230{
231 const struct GNUNET_SCHEDULER_TaskContext *tc;
232
233 send_task = NULL; 231 send_task = NULL;
234 tc = GNUNET_SCHEDULER_get_task_context ();
235 if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
236 return;
237 char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id)); 232 char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id));
238 233
239 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 234 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
diff --git a/src/transport/test_transport_api_bidirectional_connect.c b/src/transport/test_transport_api_bidirectional_connect.c
index 1e00e982d..a5d6b6b71 100644
--- a/src/transport/test_transport_api_bidirectional_connect.c
+++ b/src/transport/test_transport_api_bidirectional_connect.c
@@ -210,14 +210,10 @@ notify_ready (void *cls, size_t size, void *buf)
210static void 210static void
211sendtask (void *cls) 211sendtask (void *cls)
212{ 212{
213 const struct GNUNET_SCHEDULER_TaskContext *tc; 213 char *receiver_s;
214 214
215 send_task = NULL; 215 send_task = NULL;
216 tc = GNUNET_SCHEDULER_get_task_context (); 216 receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id));
217 if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
218 return;
219 char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id));
220
221 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 217 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
222 "Sending message from peer %u (`%4s') -> peer %u (`%s') !\n", 218 "Sending message from peer %u (`%4s') -> peer %u (`%s') !\n",
223 p2->no, GNUNET_i2s (&p2->id), p1->no, receiver_s); 219 p2->no, GNUNET_i2s (&p2->id), p1->no, receiver_s);
diff --git a/src/transport/test_transport_api_blacklisting.c b/src/transport/test_transport_api_blacklisting.c
index f65fb74f9..963d3b045 100644
--- a/src/transport/test_transport_api_blacklisting.c
+++ b/src/transport/test_transport_api_blacklisting.c
@@ -262,12 +262,7 @@ notify_ready (void *cls, size_t size, void *buf)
262static void 262static void
263sendtask (void *cls) 263sendtask (void *cls)
264{ 264{
265 const struct GNUNET_SCHEDULER_TaskContext *tc;
266
267 send_task = NULL; 265 send_task = NULL;
268 tc = GNUNET_SCHEDULER_get_task_context ();
269 if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
270 return;
271 char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id)); 266 char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id));
272 267
273 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 268 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
diff --git a/src/transport/test_transport_api_disconnect.c b/src/transport/test_transport_api_disconnect.c
index 36497ece5..f52634bde 100644
--- a/src/transport/test_transport_api_disconnect.c
+++ b/src/transport/test_transport_api_disconnect.c
@@ -165,12 +165,6 @@ notify_disconnect (void *cls, const struct GNUNET_PeerIdentity *peer)
165static void 165static void
166stop_peer (void *cls) 166stop_peer (void *cls)
167{ 167{
168 const struct GNUNET_SCHEDULER_TaskContext *tc;
169
170 tc = GNUNET_SCHEDULER_get_task_context ();
171 if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
172 return;
173
174 struct PeerContext *p = cls; 168 struct PeerContext *p = cls;
175 169
176 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Shutting down peer %u (`%s')\n", p->no, 170 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Shutting down peer %u (`%s')\n", p->no,
@@ -254,12 +248,7 @@ notify_ready (void *cls, size_t size, void *buf)
254static void 248static void
255sendtask (void *cls) 249sendtask (void *cls)
256{ 250{
257 const struct GNUNET_SCHEDULER_TaskContext *tc;
258
259 send_task = NULL; 251 send_task = NULL;
260 tc = GNUNET_SCHEDULER_get_task_context ();
261 if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
262 return;
263 char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id)); 252 char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id));
264 253
265 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 254 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
diff --git a/src/transport/test_transport_api_http_reverse_peer2.conf b/src/transport/test_transport_api_http_reverse_peer2.conf
index 7117895ef..136c09008 100644
--- a/src/transport/test_transport_api_http_reverse_peer2.conf
+++ b/src/transport/test_transport_api_http_reverse_peer2.conf
@@ -10,4 +10,3 @@ EXTERNAL_HOSTNAME_ONLY = YES
10[transport] 10[transport]
11PLUGINS = http_server 11PLUGINS = http_server
12 12
13
diff --git a/src/transport/test_transport_api_https_peer1.conf b/src/transport/test_transport_api_https_peer1.conf
index 8fc2edf2e..c6a083f37 100644
--- a/src/transport/test_transport_api_https_peer1.conf
+++ b/src/transport/test_transport_api_https_peer1.conf
@@ -21,5 +21,6 @@ UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-p1-service-peerinfo.sock
21PORT = 12101 21PORT = 12101
22PLUGINS = https_client 22PLUGINS = https_client
23UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-p1-service-transport.sock 23UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-p1-service-transport.sock
24#PREFIX = valgrind
24 25
25 26
diff --git a/src/transport/test_transport_api_https_peer2.conf b/src/transport/test_transport_api_https_peer2.conf
index d2bf20011..49210651c 100644
--- a/src/transport/test_transport_api_https_peer2.conf
+++ b/src/transport/test_transport_api_https_peer2.conf
@@ -27,5 +27,6 @@ UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-p2-service-peerinfo.sock
27PORT = 12111 27PORT = 12111
28PLUGINS = https_server 28PLUGINS = https_server
29UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-p2-service-transport.sock 29UNIXPATH = $GNUNET_RUNTIME_DIR/gnunet-p2-service-transport.sock
30#PREFIX = valgrind
30 31
31 32
diff --git a/src/transport/test_transport_api_limited_sockets.c b/src/transport/test_transport_api_limited_sockets.c
index 8d875ed52..0ae807077 100644
--- a/src/transport/test_transport_api_limited_sockets.c
+++ b/src/transport/test_transport_api_limited_sockets.c
@@ -198,13 +198,7 @@ notify_disconnect (void *cls, const struct GNUNET_PeerIdentity *peer)
198static void 198static void
199sendtask (void *cls) 199sendtask (void *cls)
200{ 200{
201 const struct GNUNET_SCHEDULER_TaskContext *tc;
202
203 send_task = NULL; 201 send_task = NULL;
204 tc = GNUNET_SCHEDULER_get_task_context ();
205 if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
206 return;
207
208 th = GNUNET_TRANSPORT_notify_transmit_ready (p1->th, &p2->id, 256, TIMEOUT, 202 th = GNUNET_TRANSPORT_notify_transmit_ready (p1->th, &p2->id, 256, TIMEOUT,
209 &notify_ready, &p1); 203 &notify_ready, &p1);
210} 204}
diff --git a/src/transport/test_transport_api_manipulation_cfg.c b/src/transport/test_transport_api_manipulation_cfg.c
index 915b79719..fe3d31f7b 100644
--- a/src/transport/test_transport_api_manipulation_cfg.c
+++ b/src/transport/test_transport_api_manipulation_cfg.c
@@ -206,12 +206,7 @@ notify_request_ready (void *cls, size_t size, void *buf)
206static void 206static void
207sendtask_request_task (void *cls) 207sendtask_request_task (void *cls)
208{ 208{
209 const struct GNUNET_SCHEDULER_TaskContext *tc;
210
211 send_task = NULL; 209 send_task = NULL;
212 tc = GNUNET_SCHEDULER_get_task_context ();
213 if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
214 return;
215 char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p2->id)); 210 char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p2->id));
216 211
217 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 212 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
@@ -272,12 +267,7 @@ notify_response_ready (void *cls, size_t size, void *buf)
272static void 267static void
273sendtask_response_task (void *cls) 268sendtask_response_task (void *cls)
274{ 269{
275 const struct GNUNET_SCHEDULER_TaskContext *tc;
276
277 send_task = NULL; 270 send_task = NULL;
278 tc = GNUNET_SCHEDULER_get_task_context ();
279 if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
280 return;
281 { 271 {
282 char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id)); 272 char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id));
283 273
diff --git a/src/transport/test_transport_api_manipulation_recv_tcp.c b/src/transport/test_transport_api_manipulation_recv_tcp.c
index 7b82236f9..02c9408a6 100644
--- a/src/transport/test_transport_api_manipulation_recv_tcp.c
+++ b/src/transport/test_transport_api_manipulation_recv_tcp.c
@@ -292,12 +292,7 @@ notify_ready (void *cls, size_t size, void *buf)
292static void 292static void
293sendtask (void *cls) 293sendtask (void *cls)
294{ 294{
295 const struct GNUNET_SCHEDULER_TaskContext *tc;
296
297 send_task = NULL; 295 send_task = NULL;
298 tc = GNUNET_SCHEDULER_get_task_context ();
299 if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
300 return;
301 char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id)); 296 char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id));
302 297
303 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 298 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
diff --git a/src/transport/test_transport_api_manipulation_send_tcp.c b/src/transport/test_transport_api_manipulation_send_tcp.c
index 22b420c27..e031b7111 100644
--- a/src/transport/test_transport_api_manipulation_send_tcp.c
+++ b/src/transport/test_transport_api_manipulation_send_tcp.c
@@ -288,12 +288,8 @@ sendtask (void *cls)
288{ 288{
289 struct GNUNET_TIME_Relative delay; 289 struct GNUNET_TIME_Relative delay;
290 struct GNUNET_ATS_Properties prop; 290 struct GNUNET_ATS_Properties prop;
291 const struct GNUNET_SCHEDULER_TaskContext *tc;
292 291
293 send_task = NULL; 292 send_task = NULL;
294 tc = GNUNET_SCHEDULER_get_task_context ();
295 if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
296 return;
297 char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id)); 293 char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id));
298 294
299 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 295 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
diff --git a/src/transport/test_transport_api_monitor_peers.c b/src/transport/test_transport_api_monitor_peers.c
index 79b39325c..549394944 100644
--- a/src/transport/test_transport_api_monitor_peers.c
+++ b/src/transport/test_transport_api_monitor_peers.c
@@ -262,12 +262,7 @@ notify_ready (void *cls, size_t size, void *buf)
262static void 262static void
263sendtask (void *cls) 263sendtask (void *cls)
264{ 264{
265 const struct GNUNET_SCHEDULER_TaskContext *tc;
266
267 send_task = NULL; 265 send_task = NULL;
268 tc = GNUNET_SCHEDULER_get_task_context ();
269 if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
270 return;
271 char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id)); 266 char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id));
272 267
273 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 268 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
diff --git a/src/transport/test_transport_api_monitor_validation.c b/src/transport/test_transport_api_monitor_validation.c
index 37b8494f1..49550e011 100644
--- a/src/transport/test_transport_api_monitor_validation.c
+++ b/src/transport/test_transport_api_monitor_validation.c
@@ -275,12 +275,7 @@ notify_ready (void *cls,
275static void 275static void
276sendtask (void *cls) 276sendtask (void *cls)
277{ 277{
278 const struct GNUNET_SCHEDULER_TaskContext *tc;
279
280 send_task = NULL; 278 send_task = NULL;
281 tc = GNUNET_SCHEDULER_get_task_context ();
282 if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
283 return;
284 char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id)); 279 char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id));
285 280
286 GNUNET_log (GNUNET_ERROR_TYPE_INFO, 281 GNUNET_log (GNUNET_ERROR_TYPE_INFO,
diff --git a/src/transport/test_transport_api_restart_1peer.c b/src/transport/test_transport_api_restart_1peer.c
index adec15f4f..50f9ebb9c 100644
--- a/src/transport/test_transport_api_restart_1peer.c
+++ b/src/transport/test_transport_api_restart_1peer.c
@@ -260,12 +260,7 @@ notify_ready (void *cls, size_t size, void *buf)
260static void 260static void
261sendtask (void *cls) 261sendtask (void *cls)
262{ 262{
263 const struct GNUNET_SCHEDULER_TaskContext *tc;
264
265 send_task = NULL; 263 send_task = NULL;
266 tc = GNUNET_SCHEDULER_get_task_context ();
267 if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
268 return;
269 char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id)); 264 char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id));
270 265
271 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 266 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
diff --git a/src/transport/test_transport_api_restart_2peers.c b/src/transport/test_transport_api_restart_2peers.c
index 2a669c9a0..18cc87c78 100644
--- a/src/transport/test_transport_api_restart_2peers.c
+++ b/src/transport/test_transport_api_restart_2peers.c
@@ -266,13 +266,7 @@ notify_ready (void *cls,
266static void 266static void
267sendtask (void *cls) 267sendtask (void *cls)
268{ 268{
269 const struct GNUNET_SCHEDULER_TaskContext *tc;
270
271 send_task = NULL; 269 send_task = NULL;
272 tc = GNUNET_SCHEDULER_get_task_context ();
273 if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
274 return;
275
276 { 270 {
277 char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id)); 271 char *receiver_s = GNUNET_strdup (GNUNET_i2s (&p1->id));
278 272
diff --git a/src/transport/test_transport_api_timeout.c b/src/transport/test_transport_api_timeout.c
index aa9884a2e..89fabdefd 100644
--- a/src/transport/test_transport_api_timeout.c
+++ b/src/transport/test_transport_api_timeout.c
@@ -185,13 +185,8 @@ static void
185timer (void *cls) 185timer (void *cls)
186{ 186{
187 static int percentage; 187 static int percentage;
188 const struct GNUNET_SCHEDULER_TaskContext *tc;
189 188
190 timer_task = NULL; 189 timer_task = NULL;
191 tc = GNUNET_SCHEDULER_get_task_context ();
192 if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
193 return;
194
195 percentage += 10; 190 percentage += 10;
196 time_running = 191 time_running =
197 GNUNET_TIME_relative_add (time_running, 192 GNUNET_TIME_relative_add (time_running,
@@ -213,6 +208,7 @@ timer (void *cls)
213 } 208 }
214} 209}
215 210
211
216static void 212static void
217testing_connect_cb (struct PeerContext *p1, struct PeerContext *p2, void *cls) 213testing_connect_cb (struct PeerContext *p1, struct PeerContext *p2, void *cls)
218{ 214{
diff --git a/src/transport/test_transport_startonly.c b/src/transport/test_transport_startonly.c
index d49e3a8c0..7dd4984e2 100644
--- a/src/transport/test_transport_startonly.c
+++ b/src/transport/test_transport_startonly.c
@@ -67,15 +67,9 @@ end ()
67static void 67static void
68end_badly (void *cls) 68end_badly (void *cls)
69{ 69{
70 const struct GNUNET_SCHEDULER_TaskContext *tc; 70 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
71 71 "Fail! Stopping peers\n");
72 tc = GNUNET_SCHEDULER_get_task_context ();
73 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Fail! Stopping peers\n");
74
75 timeout_task = NULL; 72 timeout_task = NULL;
76 if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
77 return;
78
79 if (p1 != NULL) 73 if (p1 != NULL)
80 GNUNET_TRANSPORT_TESTING_stop_peer (tth, p1); 74 GNUNET_TRANSPORT_TESTING_stop_peer (tth, p1);
81 if (NULL != tth) 75 if (NULL != tth)
@@ -83,6 +77,7 @@ end_badly (void *cls)
83 ret = GNUNET_SYSERR; 77 ret = GNUNET_SYSERR;
84} 78}
85 79
80
86static void 81static void
87notify_connect (void *cls, const struct GNUNET_PeerIdentity *peer) 82notify_connect (void *cls, const struct GNUNET_PeerIdentity *peer)
88{ 83{
@@ -91,6 +86,7 @@ notify_connect (void *cls, const struct GNUNET_PeerIdentity *peer)
91 connected++; 86 connected++;
92} 87}
93 88
89
94static void 90static void
95notify_disconnect (void *cls, const struct GNUNET_PeerIdentity *peer) 91notify_disconnect (void *cls, const struct GNUNET_PeerIdentity *peer)
96{ 92{
@@ -98,6 +94,7 @@ notify_disconnect (void *cls, const struct GNUNET_PeerIdentity *peer)
98 GNUNET_i2s (peer)); 94 GNUNET_i2s (peer));
99} 95}
100 96
97
101static void 98static void
102notify_receive (void *cls, const struct GNUNET_PeerIdentity *peer, 99notify_receive (void *cls, const struct GNUNET_PeerIdentity *peer,
103 const struct GNUNET_MessageHeader *message) 100 const struct GNUNET_MessageHeader *message)
diff --git a/src/transport/transport-testing.c b/src/transport/transport-testing.c
index 652a4e08f..4a514ea72 100644
--- a/src/transport/transport-testing.c
+++ b/src/transport/transport-testing.c
@@ -220,7 +220,7 @@ hello_offered (void *cls)
220/** 220/**
221 * Offer the current HELLO of P2 to P1. 221 * Offer the current HELLO of P2 to P1.
222 * 222 *
223 * @param cls our `struct GNUNET_TRANSPORT_TESTING_ConnectRequest ` 223 * @param cls our `struct GNUNET_TRANSPORT_TESTING_ConnectRequest`
224 */ 224 */
225static void 225static void
226offer_hello (void *cls) 226offer_hello (void *cls)
@@ -228,12 +228,8 @@ offer_hello (void *cls)
228 struct GNUNET_TRANSPORT_TESTING_ConnectRequest *cc = cls; 228 struct GNUNET_TRANSPORT_TESTING_ConnectRequest *cc = cls;
229 struct PeerContext *p1 = cc->p1; 229 struct PeerContext *p1 = cc->p1;
230 struct PeerContext *p2 = cc->p2; 230 struct PeerContext *p2 = cc->p2;
231 const struct GNUNET_SCHEDULER_TaskContext *tc;
232 231
233 cc->tct = NULL; 232 cc->tct = NULL;
234 tc = GNUNET_SCHEDULER_get_task_context ();
235 if ((tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN) != 0)
236 return;
237 { 233 {
238 char *p2_s = GNUNET_strdup (GNUNET_i2s (&p2->id)); 234 char *p2_s = GNUNET_strdup (GNUNET_i2s (&p2->id));
239 235
diff --git a/src/transport/transport_api.c b/src/transport/transport_api.c
index 6fc538f25..59f249686 100644
--- a/src/transport/transport_api.c
+++ b/src/transport/transport_api.c
@@ -1196,15 +1196,8 @@ static void
1196reconnect (void *cls) 1196reconnect (void *cls)
1197{ 1197{
1198 struct GNUNET_TRANSPORT_Handle *h = cls; 1198 struct GNUNET_TRANSPORT_Handle *h = cls;
1199 const struct GNUNET_SCHEDULER_TaskContext *tc;
1200 1199
1201 h->reconnect_task = NULL; 1200 h->reconnect_task = NULL;
1202 tc = GNUNET_SCHEDULER_get_task_context ();
1203 if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
1204 {
1205 /* shutdown, just give up */
1206 return;
1207 }
1208 LOG (GNUNET_ERROR_TYPE_DEBUG, 1201 LOG (GNUNET_ERROR_TYPE_DEBUG,
1209 "Connecting to transport service.\n"); 1202 "Connecting to transport service.\n");
1210 GNUNET_assert (NULL == h->client); 1203 GNUNET_assert (NULL == h->client);