aboutsummaryrefslogtreecommitdiff
path: root/src/transport/plugin_transport_http_server.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport/plugin_transport_http_server.c')
-rw-r--r--src/transport/plugin_transport_http_server.c56
1 files changed, 25 insertions, 31 deletions
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}