diff options
Diffstat (limited to 'src/transport/gnunet-service-transport.c')
-rw-r--r-- | src/transport/gnunet-service-transport.c | 90 |
1 files changed, 30 insertions, 60 deletions
diff --git a/src/transport/gnunet-service-transport.c b/src/transport/gnunet-service-transport.c index 87d73baf4..0ade42512 100644 --- a/src/transport/gnunet-service-transport.c +++ b/src/transport/gnunet-service-transport.c | |||
@@ -843,11 +843,6 @@ static struct GNUNET_PeerIdentity my_identity; | |||
843 | static struct GNUNET_CRYPTO_RsaPrivateKey *my_private_key; | 843 | static struct GNUNET_CRYPTO_RsaPrivateKey *my_private_key; |
844 | 844 | ||
845 | /** | 845 | /** |
846 | * Our scheduler. | ||
847 | */ | ||
848 | struct GNUNET_SCHEDULER_Handle *sched; | ||
849 | |||
850 | /** | ||
851 | * Our configuration. | 846 | * Our configuration. |
852 | */ | 847 | */ |
853 | const struct GNUNET_CONFIGURATION_Handle *cfg; | 848 | const struct GNUNET_CONFIGURATION_Handle *cfg; |
@@ -1656,10 +1651,8 @@ try_transmission_to_peer (struct NeighbourList *neighbour) | |||
1656 | 1, | 1651 | 1, |
1657 | GNUNET_NO); | 1652 | GNUNET_NO); |
1658 | if (neighbour->retry_task != GNUNET_SCHEDULER_NO_TASK) | 1653 | if (neighbour->retry_task != GNUNET_SCHEDULER_NO_TASK) |
1659 | GNUNET_SCHEDULER_cancel (sched, | 1654 | GNUNET_SCHEDULER_cancel (neighbour->retry_task); |
1660 | neighbour->retry_task); | 1655 | neighbour->retry_task = GNUNET_SCHEDULER_add_delayed (timeout, |
1661 | neighbour->retry_task = GNUNET_SCHEDULER_add_delayed (sched, | ||
1662 | timeout, | ||
1663 | &retry_transmission_task, | 1656 | &retry_transmission_task, |
1664 | neighbour); | 1657 | neighbour); |
1665 | #if DEBUG_TRANSPORT | 1658 | #if DEBUG_TRANSPORT |
@@ -1924,7 +1917,7 @@ update_addresses (struct TransportPlugin *plugin, int fresh) | |||
1924 | int expired; | 1917 | int expired; |
1925 | 1918 | ||
1926 | if (plugin->address_update_task != GNUNET_SCHEDULER_NO_TASK) | 1919 | if (plugin->address_update_task != GNUNET_SCHEDULER_NO_TASK) |
1927 | GNUNET_SCHEDULER_cancel (plugin->env.sched, plugin->address_update_task); | 1920 | GNUNET_SCHEDULER_cancel (plugin->address_update_task); |
1928 | plugin->address_update_task = GNUNET_SCHEDULER_NO_TASK; | 1921 | plugin->address_update_task = GNUNET_SCHEDULER_NO_TASK; |
1929 | now = GNUNET_TIME_absolute_get (); | 1922 | now = GNUNET_TIME_absolute_get (); |
1930 | min_remaining = GNUNET_TIME_UNIT_FOREVER_REL; | 1923 | min_remaining = GNUNET_TIME_UNIT_FOREVER_REL; |
@@ -1962,8 +1955,7 @@ update_addresses (struct TransportPlugin *plugin, int fresh) | |||
1962 | GNUNET_TIME_relative_divide (HELLO_ADDRESS_EXPIRATION, | 1955 | GNUNET_TIME_relative_divide (HELLO_ADDRESS_EXPIRATION, |
1963 | 2)); | 1956 | 2)); |
1964 | plugin->address_update_task | 1957 | plugin->address_update_task |
1965 | = GNUNET_SCHEDULER_add_delayed (plugin->env.sched, | 1958 | = GNUNET_SCHEDULER_add_delayed (min_remaining, |
1966 | min_remaining, | ||
1967 | &expire_address_task, plugin); | 1959 | &expire_address_task, plugin); |
1968 | } | 1960 | } |
1969 | 1961 | ||
@@ -2126,8 +2118,7 @@ plugin_env_session_end (void *cls, | |||
2126 | prev->next = pos->next; | 2118 | prev->next = pos->next; |
2127 | if (GNUNET_SCHEDULER_NO_TASK != pos->revalidate_task) | 2119 | if (GNUNET_SCHEDULER_NO_TASK != pos->revalidate_task) |
2128 | { | 2120 | { |
2129 | GNUNET_SCHEDULER_cancel (sched, | 2121 | GNUNET_SCHEDULER_cancel (pos->revalidate_task); |
2130 | pos->revalidate_task); | ||
2131 | pos->revalidate_task = GNUNET_SCHEDULER_NO_TASK; | 2122 | pos->revalidate_task = GNUNET_SCHEDULER_NO_TASK; |
2132 | } | 2123 | } |
2133 | GNUNET_free (pos); | 2124 | GNUNET_free (pos); |
@@ -2518,7 +2509,7 @@ abort_validation (void *cls, | |||
2518 | struct ValidationEntry *va = value; | 2509 | struct ValidationEntry *va = value; |
2519 | 2510 | ||
2520 | if (GNUNET_SCHEDULER_NO_TASK != va->timeout_task) | 2511 | if (GNUNET_SCHEDULER_NO_TASK != va->timeout_task) |
2521 | GNUNET_SCHEDULER_cancel (sched, va->timeout_task); | 2512 | GNUNET_SCHEDULER_cancel (va->timeout_task); |
2522 | GNUNET_free (va->transport_name); | 2513 | GNUNET_free (va->transport_name); |
2523 | if (va->chvc != NULL) | 2514 | if (va->chvc != NULL) |
2524 | { | 2515 | { |
@@ -2776,8 +2767,7 @@ setup_new_neighbour (const struct GNUNET_PeerIdentity *peer, | |||
2776 | } | 2767 | } |
2777 | n->latency = GNUNET_TIME_UNIT_FOREVER_REL; | 2768 | n->latency = GNUNET_TIME_UNIT_FOREVER_REL; |
2778 | n->distance = -1; | 2769 | n->distance = -1; |
2779 | n->timeout_task = GNUNET_SCHEDULER_add_delayed (sched, | 2770 | n->timeout_task = GNUNET_SCHEDULER_add_delayed (GNUNET_CONSTANTS_IDLE_CONNECTION_TIMEOUT, |
2780 | GNUNET_CONSTANTS_IDLE_CONNECTION_TIMEOUT, | ||
2781 | &neighbour_timeout_task, n); | 2771 | &neighbour_timeout_task, n); |
2782 | if (do_hello) | 2772 | if (do_hello) |
2783 | { | 2773 | { |
@@ -2954,8 +2944,7 @@ transmit_blacklist_message (void *cls, | |||
2954 | if (size == 0) | 2944 | if (size == 0) |
2955 | { | 2945 | { |
2956 | GNUNET_assert (bc->task == GNUNET_SCHEDULER_NO_TASK); | 2946 | GNUNET_assert (bc->task == GNUNET_SCHEDULER_NO_TASK); |
2957 | bc->task = GNUNET_SCHEDULER_add_now (sched, | 2947 | bc->task = GNUNET_SCHEDULER_add_now (&do_blacklist_check, |
2958 | &do_blacklist_check, | ||
2959 | bc); | 2948 | bc); |
2960 | return 0; | 2949 | return 0; |
2961 | } | 2950 | } |
@@ -3047,8 +3036,7 @@ setup_peer_check_blacklist (const struct GNUNET_PeerIdentity *peer, | |||
3047 | bc->cont = cont; | 3036 | bc->cont = cont; |
3048 | bc->cont_cls = cont_cls; | 3037 | bc->cont_cls = cont_cls; |
3049 | bc->bl_pos = bl_head; | 3038 | bc->bl_pos = bl_head; |
3050 | bc->task = GNUNET_SCHEDULER_add_now (sched, | 3039 | bc->task = GNUNET_SCHEDULER_add_now (&do_blacklist_check, |
3051 | &do_blacklist_check, | ||
3052 | bc); | 3040 | bc); |
3053 | } | 3041 | } |
3054 | 3042 | ||
@@ -3120,8 +3108,7 @@ handle_blacklist_init (void *cls, | |||
3120 | bc->bl_pos = bl; | 3108 | bc->bl_pos = bl; |
3121 | if (n == neighbours) /* all would wait for the same client, no need to | 3109 | if (n == neighbours) /* all would wait for the same client, no need to |
3122 | create more than just the first task right now */ | 3110 | create more than just the first task right now */ |
3123 | bc->task = GNUNET_SCHEDULER_add_now (sched, | 3111 | bc->task = GNUNET_SCHEDULER_add_now (&do_blacklist_check, |
3124 | &do_blacklist_check, | ||
3125 | bc); | 3112 | bc); |
3126 | n = n->next; | 3113 | n = n->next; |
3127 | } | 3114 | } |
@@ -3164,8 +3151,7 @@ handle_blacklist_reply (void *cls, | |||
3164 | else | 3151 | else |
3165 | { | 3152 | { |
3166 | bc->bl_pos = bc->bl_pos->next; | 3153 | bc->bl_pos = bc->bl_pos->next; |
3167 | bc->task = GNUNET_SCHEDULER_add_now (sched, | 3154 | bc->task = GNUNET_SCHEDULER_add_now (&do_blacklist_check, |
3168 | &do_blacklist_check, | ||
3169 | bc); | 3155 | bc); |
3170 | } | 3156 | } |
3171 | /* check if any other bc's are waiting for this blacklister */ | 3157 | /* check if any other bc's are waiting for this blacklister */ |
@@ -3174,8 +3160,7 @@ handle_blacklist_reply (void *cls, | |||
3174 | { | 3160 | { |
3175 | if ( (bc->bl_pos == bl) && | 3161 | if ( (bc->bl_pos == bl) && |
3176 | (GNUNET_SCHEDULER_NO_TASK == bc->task) ) | 3162 | (GNUNET_SCHEDULER_NO_TASK == bc->task) ) |
3177 | bc->task = GNUNET_SCHEDULER_add_now (sched, | 3163 | bc->task = GNUNET_SCHEDULER_add_now (&do_blacklist_check, |
3178 | &do_blacklist_check, | ||
3179 | bc); | 3164 | bc); |
3180 | bc = bc->next; | 3165 | bc = bc->next; |
3181 | } | 3166 | } |
@@ -3258,8 +3243,7 @@ send_periodic_ping (void *cls, | |||
3258 | &neighbour->publicKey, | 3243 | &neighbour->publicKey, |
3259 | sizeof(struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded)); | 3244 | sizeof(struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded)); |
3260 | 3245 | ||
3261 | va->timeout_task = GNUNET_SCHEDULER_add_delayed (sched, | 3246 | va->timeout_task = GNUNET_SCHEDULER_add_delayed (HELLO_VERIFICATION_TIMEOUT, |
3262 | HELLO_VERIFICATION_TIMEOUT, | ||
3263 | &timeout_hello_validation, | 3247 | &timeout_hello_validation, |
3264 | va); | 3248 | va); |
3265 | GNUNET_CONTAINER_multihashmap_put (validation_map, | 3249 | GNUNET_CONTAINER_multihashmap_put (validation_map, |
@@ -3384,8 +3368,7 @@ schedule_next_ping (struct ForeignAddressList *fal) | |||
3384 | GNUNET_TIME_UNIT_SECONDS); | 3368 | GNUNET_TIME_UNIT_SECONDS); |
3385 | /* randomize a bit (to avoid doing all at the same time) */ | 3369 | /* randomize a bit (to avoid doing all at the same time) */ |
3386 | delay.rel_value += GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_WEAK, 1000); | 3370 | delay.rel_value += GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_WEAK, 1000); |
3387 | fal->revalidate_task = GNUNET_SCHEDULER_add_delayed(sched, | 3371 | fal->revalidate_task = GNUNET_SCHEDULER_add_delayed(delay, |
3388 | delay, | ||
3389 | &send_periodic_ping, | 3372 | &send_periodic_ping, |
3390 | fal); | 3373 | fal); |
3391 | } | 3374 | } |
@@ -3691,8 +3674,7 @@ check_pending_validation (void *cls, | |||
3691 | } | 3674 | } |
3692 | if (n->retry_task != GNUNET_SCHEDULER_NO_TASK) | 3675 | if (n->retry_task != GNUNET_SCHEDULER_NO_TASK) |
3693 | { | 3676 | { |
3694 | GNUNET_SCHEDULER_cancel (sched, | 3677 | GNUNET_SCHEDULER_cancel (n->retry_task); |
3695 | n->retry_task); | ||
3696 | n->retry_task = GNUNET_SCHEDULER_NO_TASK; | 3678 | n->retry_task = GNUNET_SCHEDULER_NO_TASK; |
3697 | try_transmission_to_peer (n); | 3679 | try_transmission_to_peer (n); |
3698 | } | 3680 | } |
@@ -3981,8 +3963,7 @@ run_validation (void *cls, | |||
3981 | va->addrlen = addrlen; | 3963 | va->addrlen = addrlen; |
3982 | GNUNET_HELLO_get_key (chvc->hello, | 3964 | GNUNET_HELLO_get_key (chvc->hello, |
3983 | &va->publicKey); | 3965 | &va->publicKey); |
3984 | va->timeout_task = GNUNET_SCHEDULER_add_delayed (sched, | 3966 | va->timeout_task = GNUNET_SCHEDULER_add_delayed (HELLO_VERIFICATION_TIMEOUT, |
3985 | HELLO_VERIFICATION_TIMEOUT, | ||
3986 | &timeout_hello_validation, | 3967 | &timeout_hello_validation, |
3987 | va); | 3968 | va); |
3988 | GNUNET_CONTAINER_multihashmap_put (validation_map, | 3969 | GNUNET_CONTAINER_multihashmap_put (validation_map, |
@@ -4146,8 +4127,7 @@ process_hello (struct TransportPlugin *plugin, | |||
4146 | GNUNET_NO); | 4127 | GNUNET_NO); |
4147 | 4128 | ||
4148 | /* first, check if load is too high */ | 4129 | /* first, check if load is too high */ |
4149 | if (GNUNET_SCHEDULER_get_load (sched, | 4130 | if (GNUNET_SCHEDULER_get_load (GNUNET_SCHEDULER_PRIORITY_BACKGROUND) > MAX_HELLO_LOAD) |
4150 | GNUNET_SCHEDULER_PRIORITY_BACKGROUND) > MAX_HELLO_LOAD) | ||
4151 | { | 4131 | { |
4152 | GNUNET_STATISTICS_update (stats, | 4132 | GNUNET_STATISTICS_update (stats, |
4153 | gettext_noop ("# HELLOs ignored due to high load"), | 4133 | gettext_noop ("# HELLOs ignored due to high load"), |
@@ -4351,8 +4331,7 @@ disconnect_neighbour (struct NeighbourList *n, int check) | |||
4351 | GNUNET_NO); | 4331 | GNUNET_NO); |
4352 | if (GNUNET_SCHEDULER_NO_TASK != peer_pos->revalidate_task) | 4332 | if (GNUNET_SCHEDULER_NO_TASK != peer_pos->revalidate_task) |
4353 | { | 4333 | { |
4354 | GNUNET_SCHEDULER_cancel (sched, | 4334 | GNUNET_SCHEDULER_cancel (peer_pos->revalidate_task); |
4355 | peer_pos->revalidate_task); | ||
4356 | peer_pos->revalidate_task = GNUNET_SCHEDULER_NO_TASK; | 4335 | peer_pos->revalidate_task = GNUNET_SCHEDULER_NO_TASK; |
4357 | } | 4336 | } |
4358 | GNUNET_free(peer_pos); | 4337 | GNUNET_free(peer_pos); |
@@ -4381,12 +4360,12 @@ disconnect_neighbour (struct NeighbourList *n, int check) | |||
4381 | } | 4360 | } |
4382 | if (n->timeout_task != GNUNET_SCHEDULER_NO_TASK) | 4361 | if (n->timeout_task != GNUNET_SCHEDULER_NO_TASK) |
4383 | { | 4362 | { |
4384 | GNUNET_SCHEDULER_cancel (sched, n->timeout_task); | 4363 | GNUNET_SCHEDULER_cancel (n->timeout_task); |
4385 | n->timeout_task = GNUNET_SCHEDULER_NO_TASK; | 4364 | n->timeout_task = GNUNET_SCHEDULER_NO_TASK; |
4386 | } | 4365 | } |
4387 | if (n->retry_task != GNUNET_SCHEDULER_NO_TASK) | 4366 | if (n->retry_task != GNUNET_SCHEDULER_NO_TASK) |
4388 | { | 4367 | { |
4389 | GNUNET_SCHEDULER_cancel (sched, n->retry_task); | 4368 | GNUNET_SCHEDULER_cancel (n->retry_task); |
4390 | n->retry_task = GNUNET_SCHEDULER_NO_TASK; | 4369 | n->retry_task = GNUNET_SCHEDULER_NO_TASK; |
4391 | } | 4370 | } |
4392 | if (n->piter != NULL) | 4371 | if (n->piter != NULL) |
@@ -4736,11 +4715,9 @@ plugin_env_receive (void *cls, const struct GNUNET_PeerIdentity *peer, | |||
4736 | n->peer_timeout = | 4715 | n->peer_timeout = |
4737 | GNUNET_TIME_relative_to_absolute | 4716 | GNUNET_TIME_relative_to_absolute |
4738 | (GNUNET_CONSTANTS_IDLE_CONNECTION_TIMEOUT); | 4717 | (GNUNET_CONSTANTS_IDLE_CONNECTION_TIMEOUT); |
4739 | GNUNET_SCHEDULER_cancel (sched, | 4718 | GNUNET_SCHEDULER_cancel (n->timeout_task); |
4740 | n->timeout_task); | ||
4741 | n->timeout_task = | 4719 | n->timeout_task = |
4742 | GNUNET_SCHEDULER_add_delayed (sched, | 4720 | GNUNET_SCHEDULER_add_delayed (GNUNET_CONSTANTS_IDLE_CONNECTION_TIMEOUT, |
4743 | GNUNET_CONSTANTS_IDLE_CONNECTION_TIMEOUT, | ||
4744 | &neighbour_timeout_task, n); | 4721 | &neighbour_timeout_task, n); |
4745 | if (n->quota_violation_count > QUOTA_VIOLATION_DROP_THRESHOLD) | 4722 | if (n->quota_violation_count > QUOTA_VIOLATION_DROP_THRESHOLD) |
4746 | { | 4723 | { |
@@ -5191,7 +5168,6 @@ static void | |||
5191 | create_environment (struct TransportPlugin *plug) | 5168 | create_environment (struct TransportPlugin *plug) |
5192 | { | 5169 | { |
5193 | plug->env.cfg = cfg; | 5170 | plug->env.cfg = cfg; |
5194 | plug->env.sched = sched; | ||
5195 | plug->env.my_identity = &my_identity; | 5171 | plug->env.my_identity = &my_identity; |
5196 | plug->env.our_hello = &our_hello; | 5172 | plug->env.our_hello = &our_hello; |
5197 | plug->env.cls = plug; | 5173 | plug->env.cls = plug; |
@@ -5276,8 +5252,7 @@ client_disconnect_notification (void *cls, | |||
5276 | bc->th = NULL; | 5252 | bc->th = NULL; |
5277 | } | 5253 | } |
5278 | if (bc->task == GNUNET_SCHEDULER_NO_TASK) | 5254 | if (bc->task == GNUNET_SCHEDULER_NO_TASK) |
5279 | bc->task = GNUNET_SCHEDULER_add_now (sched, | 5255 | bc->task = GNUNET_SCHEDULER_add_now (&do_blacklist_check, |
5280 | &do_blacklist_check, | ||
5281 | bc); | 5256 | bc); |
5282 | break; | 5257 | break; |
5283 | } | 5258 | } |
@@ -5359,8 +5334,7 @@ shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
5359 | plugins = plug->next; | 5334 | plugins = plug->next; |
5360 | if (plug->address_update_task != GNUNET_SCHEDULER_NO_TASK) | 5335 | if (plug->address_update_task != GNUNET_SCHEDULER_NO_TASK) |
5361 | { | 5336 | { |
5362 | GNUNET_SCHEDULER_cancel (plug->env.sched, | 5337 | GNUNET_SCHEDULER_cancel (plug->address_update_task); |
5363 | plug->address_update_task); | ||
5364 | plug->address_update_task = GNUNET_SCHEDULER_NO_TASK; | 5338 | plug->address_update_task = GNUNET_SCHEDULER_NO_TASK; |
5365 | } | 5339 | } |
5366 | GNUNET_break (NULL == GNUNET_PLUGIN_unload (plug->lib_name, plug->api)); | 5340 | GNUNET_break (NULL == GNUNET_PLUGIN_unload (plug->lib_name, plug->api)); |
@@ -5423,13 +5397,11 @@ shutdown_task (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
5423 | * Initiate transport service. | 5397 | * Initiate transport service. |
5424 | * | 5398 | * |
5425 | * @param cls closure | 5399 | * @param cls closure |
5426 | * @param s scheduler to use | ||
5427 | * @param server the initialized server | 5400 | * @param server the initialized server |
5428 | * @param c configuration to use | 5401 | * @param c configuration to use |
5429 | */ | 5402 | */ |
5430 | static void | 5403 | static void |
5431 | run (void *cls, | 5404 | run (void *cls, |
5432 | struct GNUNET_SCHEDULER_Handle *s, | ||
5433 | struct GNUNET_SERVER_Handle *server, | 5405 | struct GNUNET_SERVER_Handle *server, |
5434 | const struct GNUNET_CONFIGURATION_Handle *c) | 5406 | const struct GNUNET_CONFIGURATION_Handle *c) |
5435 | { | 5407 | { |
@@ -5459,9 +5431,8 @@ run (void *cls, | |||
5459 | unsigned long long tneigh; | 5431 | unsigned long long tneigh; |
5460 | char *keyfile; | 5432 | char *keyfile; |
5461 | 5433 | ||
5462 | sched = s; | ||
5463 | cfg = c; | 5434 | cfg = c; |
5464 | stats = GNUNET_STATISTICS_create (sched, "transport", cfg); | 5435 | stats = GNUNET_STATISTICS_create ("transport", cfg); |
5465 | validation_map = GNUNET_CONTAINER_multihashmap_create (64); | 5436 | validation_map = GNUNET_CONTAINER_multihashmap_create (64); |
5466 | /* parse configuration */ | 5437 | /* parse configuration */ |
5467 | if ((GNUNET_OK != | 5438 | if ((GNUNET_OK != |
@@ -5477,7 +5448,7 @@ run (void *cls, | |||
5477 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, | 5448 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
5478 | _ | 5449 | _ |
5479 | ("Transport service is lacking key configuration settings. Exiting.\n")); | 5450 | ("Transport service is lacking key configuration settings. Exiting.\n")); |
5480 | GNUNET_SCHEDULER_shutdown (s); | 5451 | GNUNET_SCHEDULER_shutdown (); |
5481 | if (stats != NULL) | 5452 | if (stats != NULL) |
5482 | { | 5453 | { |
5483 | GNUNET_STATISTICS_destroy (stats, GNUNET_NO); | 5454 | GNUNET_STATISTICS_destroy (stats, GNUNET_NO); |
@@ -5488,12 +5459,12 @@ run (void *cls, | |||
5488 | return; | 5459 | return; |
5489 | } | 5460 | } |
5490 | max_connect_per_transport = (uint32_t) tneigh; | 5461 | max_connect_per_transport = (uint32_t) tneigh; |
5491 | peerinfo = GNUNET_PEERINFO_connect (sched, cfg); | 5462 | peerinfo = GNUNET_PEERINFO_connect (cfg); |
5492 | if (peerinfo == NULL) | 5463 | if (peerinfo == NULL) |
5493 | { | 5464 | { |
5494 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, | 5465 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
5495 | _("Could not access PEERINFO service. Exiting.\n")); | 5466 | _("Could not access PEERINFO service. Exiting.\n")); |
5496 | GNUNET_SCHEDULER_shutdown (s); | 5467 | GNUNET_SCHEDULER_shutdown (); |
5497 | if (stats != NULL) | 5468 | if (stats != NULL) |
5498 | { | 5469 | { |
5499 | GNUNET_STATISTICS_destroy (stats, GNUNET_NO); | 5470 | GNUNET_STATISTICS_destroy (stats, GNUNET_NO); |
@@ -5511,7 +5482,7 @@ run (void *cls, | |||
5511 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, | 5482 | GNUNET_log (GNUNET_ERROR_TYPE_ERROR, |
5512 | _ | 5483 | _ |
5513 | ("Transport service could not access hostkey. Exiting.\n")); | 5484 | ("Transport service could not access hostkey. Exiting.\n")); |
5514 | GNUNET_SCHEDULER_shutdown (s); | 5485 | GNUNET_SCHEDULER_shutdown (); |
5515 | if (stats != NULL) | 5486 | if (stats != NULL) |
5516 | { | 5487 | { |
5517 | GNUNET_STATISTICS_destroy (stats, GNUNET_NO); | 5488 | GNUNET_STATISTICS_destroy (stats, GNUNET_NO); |
@@ -5544,8 +5515,7 @@ run (void *cls, | |||
5544 | } | 5515 | } |
5545 | GNUNET_free (plugs); | 5516 | GNUNET_free (plugs); |
5546 | } | 5517 | } |
5547 | GNUNET_SCHEDULER_add_delayed (sched, | 5518 | GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_FOREVER_REL, |
5548 | GNUNET_TIME_UNIT_FOREVER_REL, | ||
5549 | &shutdown_task, NULL); | 5519 | &shutdown_task, NULL); |
5550 | if (no_transports) | 5520 | if (no_transports) |
5551 | refresh_hello (); | 5521 | refresh_hello (); |