aboutsummaryrefslogtreecommitdiff
path: root/src/transport/plugin_transport_http.c
diff options
context:
space:
mode:
authorNathan S. Evans <evans@in.tum.de>2010-11-05 18:21:50 +0000
committerNathan S. Evans <evans@in.tum.de>2010-11-05 18:21:50 +0000
commit75a33a1499cf60ea4364c9aa673816629a6c1413 (patch)
tree0620da4312bb04de4d7b65074fdd3b0c3dd6cc0e /src/transport/plugin_transport_http.c
parent7217c601ad30760872823193d62307e7a335d226 (diff)
downloadgnunet-75a33a1499cf60ea4364c9aa673816629a6c1413.tar.gz
gnunet-75a33a1499cf60ea4364c9aa673816629a6c1413.zip
big scheduler refactoring, expect some issues
Diffstat (limited to 'src/transport/plugin_transport_http.c')
-rw-r--r--src/transport/plugin_transport_http.c41
1 files changed, 19 insertions, 22 deletions
diff --git a/src/transport/plugin_transport_http.c b/src/transport/plugin_transport_http.c
index e4c88903f..ad8ced567 100644
--- a/src/transport/plugin_transport_http.c
+++ b/src/transport/plugin_transport_http.c
@@ -880,14 +880,14 @@ static void mhd_write_mst_cb (void *cls,
880 0); 880 0);
881 pc->delay = delay; 881 pc->delay = delay;
882 if (pc->reset_task != GNUNET_SCHEDULER_NO_TASK) 882 if (pc->reset_task != GNUNET_SCHEDULER_NO_TASK)
883 GNUNET_SCHEDULER_cancel (pc->plugin->env->sched, pc->reset_task); 883 GNUNET_SCHEDULER_cancel (pc->reset_task);
884 884
885 if (delay.rel_value > 0) 885 if (delay.rel_value > 0)
886 { 886 {
887#if DEBUG_HTTP 887#if DEBUG_HTTP
888 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"Connection %X: Inbound quota management: delay next read for %llu ms \n", ps, delay.rel_value); 888 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"Connection %X: Inbound quota management: delay next read for %llu ms \n", ps, delay.rel_value);
889#endif 889#endif
890 pc->reset_task = GNUNET_SCHEDULER_add_delayed (pc->plugin->env->sched, delay, &reset_inbound_quota_delay, pc); 890 pc->reset_task = GNUNET_SCHEDULER_add_delayed (delay, &reset_inbound_quota_delay, pc);
891 } 891 }
892} 892}
893 893
@@ -1274,12 +1274,11 @@ http_server_daemon_prepare (struct Plugin *plugin , struct MHD_Daemon *daemon_ha
1274 { 1274 {
1275 if (plugin->http_server_task_v4 != GNUNET_SCHEDULER_NO_TASK) 1275 if (plugin->http_server_task_v4 != GNUNET_SCHEDULER_NO_TASK)
1276 { 1276 {
1277 GNUNET_SCHEDULER_cancel(plugin->env->sched, plugin->http_server_task_v4); 1277 GNUNET_SCHEDULER_cancel(plugin->http_server_task_v4);
1278 plugin->http_server_daemon_v4 = GNUNET_SCHEDULER_NO_TASK; 1278 plugin->http_server_daemon_v4 = GNUNET_SCHEDULER_NO_TASK;
1279 } 1279 }
1280 1280
1281 ret = GNUNET_SCHEDULER_add_select (plugin->env->sched, 1281 ret = GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
1282 GNUNET_SCHEDULER_PRIORITY_DEFAULT,
1283 GNUNET_SCHEDULER_NO_TASK, 1282 GNUNET_SCHEDULER_NO_TASK,
1284 tv, 1283 tv,
1285 wrs, 1284 wrs,
@@ -1291,12 +1290,11 @@ http_server_daemon_prepare (struct Plugin *plugin , struct MHD_Daemon *daemon_ha
1291 { 1290 {
1292 if (plugin->http_server_task_v6 != GNUNET_SCHEDULER_NO_TASK) 1291 if (plugin->http_server_task_v6 != GNUNET_SCHEDULER_NO_TASK)
1293 { 1292 {
1294 GNUNET_SCHEDULER_cancel(plugin->env->sched, plugin->http_server_task_v6); 1293 GNUNET_SCHEDULER_cancel(plugin->http_server_task_v6);
1295 plugin->http_server_task_v6 = GNUNET_SCHEDULER_NO_TASK; 1294 plugin->http_server_task_v6 = GNUNET_SCHEDULER_NO_TASK;
1296 } 1295 }
1297 1296
1298 ret = GNUNET_SCHEDULER_add_select (plugin->env->sched, 1297 ret = GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
1299 GNUNET_SCHEDULER_PRIORITY_DEFAULT,
1300 GNUNET_SCHEDULER_NO_TASK, 1298 GNUNET_SCHEDULER_NO_TASK,
1301 tv, 1299 tv,
1302 wrs, 1300 wrs,
@@ -1586,14 +1584,14 @@ static void curl_receive_mst_cb (void *cls,
1586 1584
1587 pc->delay = delay; 1585 pc->delay = delay;
1588 if (pc->reset_task != GNUNET_SCHEDULER_NO_TASK) 1586 if (pc->reset_task != GNUNET_SCHEDULER_NO_TASK)
1589 GNUNET_SCHEDULER_cancel (pc->plugin->env->sched, pc->reset_task); 1587 GNUNET_SCHEDULER_cancel (pc->reset_task);
1590 1588
1591 if (delay.rel_value > 0) 1589 if (delay.rel_value > 0)
1592 { 1590 {
1593#if DEBUG_HTTP 1591#if DEBUG_HTTP
1594 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"Connection %X: Inbound quota management: delay next read for %llu ms \n", ps, delay.abs_value); 1592 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,"Connection %X: Inbound quota management: delay next read for %llu ms \n", ps, delay.abs_value);
1595#endif 1593#endif
1596 pc->reset_task = GNUNET_SCHEDULER_add_delayed (pc->plugin->env->sched, delay, &reset_inbound_quota_delay, pc); 1594 pc->reset_task = GNUNET_SCHEDULER_add_delayed (delay, &reset_inbound_quota_delay, pc);
1597 } 1595 }
1598} 1596}
1599 1597
@@ -1820,7 +1818,7 @@ static int curl_schedule(struct Plugin *plugin)
1820 /* Cancel previous scheduled task */ 1818 /* Cancel previous scheduled task */
1821 if (plugin->http_curl_task != GNUNET_SCHEDULER_NO_TASK) 1819 if (plugin->http_curl_task != GNUNET_SCHEDULER_NO_TASK)
1822 { 1820 {
1823 GNUNET_SCHEDULER_cancel(plugin->env->sched, plugin->http_curl_task); 1821 GNUNET_SCHEDULER_cancel(plugin->http_curl_task);
1824 plugin->http_curl_task = GNUNET_SCHEDULER_NO_TASK; 1822 plugin->http_curl_task = GNUNET_SCHEDULER_NO_TASK;
1825 } 1823 }
1826 1824
@@ -1851,8 +1849,7 @@ static int curl_schedule(struct Plugin *plugin)
1851 gws = GNUNET_NETWORK_fdset_create (); 1849 gws = GNUNET_NETWORK_fdset_create ();
1852 GNUNET_NETWORK_fdset_copy_native (grs, &rs, max + 1); 1850 GNUNET_NETWORK_fdset_copy_native (grs, &rs, max + 1);
1853 GNUNET_NETWORK_fdset_copy_native (gws, &ws, max + 1); 1851 GNUNET_NETWORK_fdset_copy_native (gws, &ws, max + 1);
1854 plugin->http_curl_task = GNUNET_SCHEDULER_add_select (plugin->env->sched, 1852 plugin->http_curl_task = GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_DEFAULT,
1855 GNUNET_SCHEDULER_PRIORITY_DEFAULT,
1856 GNUNET_SCHEDULER_NO_TASK, 1853 GNUNET_SCHEDULER_NO_TASK,
1857 (to == -1) ? GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 5) : GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, to), 1854 (to == -1) ? GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 5) : GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MILLISECONDS, to),
1858 grs, 1855 grs,
@@ -1958,10 +1955,10 @@ static int send_check_connections (struct Plugin *plugin, struct Session *ps)
1958 } 1955 }
1959 if (plugin->http_curl_task != GNUNET_SCHEDULER_NO_TASK) 1956 if (plugin->http_curl_task != GNUNET_SCHEDULER_NO_TASK)
1960 { 1957 {
1961 GNUNET_SCHEDULER_cancel(plugin->env->sched, plugin->http_curl_task); 1958 GNUNET_SCHEDULER_cancel(plugin->http_curl_task);
1962 plugin->http_curl_task = GNUNET_SCHEDULER_NO_TASK; 1959 plugin->http_curl_task = GNUNET_SCHEDULER_NO_TASK;
1963 } 1960 }
1964 plugin->http_curl_task = GNUNET_SCHEDULER_add_now (plugin->env->sched, &curl_perform, plugin); 1961 plugin->http_curl_task = GNUNET_SCHEDULER_add_now (&curl_perform, plugin);
1965 } 1962 }
1966 1963
1967 /* waiting for receive direction */ 1964 /* waiting for receive direction */
@@ -1989,10 +1986,10 @@ static int send_check_connections (struct Plugin *plugin, struct Session *ps)
1989 ps->send_active=GNUNET_YES; 1986 ps->send_active=GNUNET_YES;
1990 if (plugin->http_curl_task != GNUNET_SCHEDULER_NO_TASK) 1987 if (plugin->http_curl_task != GNUNET_SCHEDULER_NO_TASK)
1991 { 1988 {
1992 GNUNET_SCHEDULER_cancel(plugin->env->sched, plugin->http_curl_task); 1989 GNUNET_SCHEDULER_cancel(plugin->http_curl_task);
1993 plugin->http_curl_task = GNUNET_SCHEDULER_NO_TASK; 1990 plugin->http_curl_task = GNUNET_SCHEDULER_NO_TASK;
1994 } 1991 }
1995 plugin->http_curl_task = GNUNET_SCHEDULER_add_now (plugin->env->sched, &curl_perform, plugin); 1992 plugin->http_curl_task = GNUNET_SCHEDULER_add_now (&curl_perform, plugin);
1996 return GNUNET_YES; 1993 return GNUNET_YES;
1997 } 1994 }
1998 else 1995 else
@@ -2058,10 +2055,10 @@ static int send_check_connections (struct Plugin *plugin, struct Session *ps)
2058 } 2055 }
2059 if (plugin->http_curl_task != GNUNET_SCHEDULER_NO_TASK) 2056 if (plugin->http_curl_task != GNUNET_SCHEDULER_NO_TASK)
2060 { 2057 {
2061 GNUNET_SCHEDULER_cancel(plugin->env->sched, plugin->http_curl_task); 2058 GNUNET_SCHEDULER_cancel(plugin->http_curl_task);
2062 plugin->http_curl_task = GNUNET_SCHEDULER_NO_TASK; 2059 plugin->http_curl_task = GNUNET_SCHEDULER_NO_TASK;
2063 } 2060 }
2064 plugin->http_curl_task = GNUNET_SCHEDULER_add_now (plugin->env->sched, &curl_perform, plugin); 2061 plugin->http_curl_task = GNUNET_SCHEDULER_add_now (&curl_perform, plugin);
2065 return GNUNET_YES; 2062 return GNUNET_YES;
2066 } 2063 }
2067 if (ps->direction == INBOUND) 2064 if (ps->direction == INBOUND)
@@ -2658,13 +2655,13 @@ LIBGNUNET_PLUGIN_TRANSPORT_DONE (void *cls)
2658 2655
2659 if ( plugin->http_server_task_v4 != GNUNET_SCHEDULER_NO_TASK) 2656 if ( plugin->http_server_task_v4 != GNUNET_SCHEDULER_NO_TASK)
2660 { 2657 {
2661 GNUNET_SCHEDULER_cancel(plugin->env->sched, plugin->http_server_task_v4); 2658 GNUNET_SCHEDULER_cancel(plugin->http_server_task_v4);
2662 plugin->http_server_task_v4 = GNUNET_SCHEDULER_NO_TASK; 2659 plugin->http_server_task_v4 = GNUNET_SCHEDULER_NO_TASK;
2663 } 2660 }
2664 2661
2665 if ( plugin->http_server_task_v6 != GNUNET_SCHEDULER_NO_TASK) 2662 if ( plugin->http_server_task_v6 != GNUNET_SCHEDULER_NO_TASK)
2666 { 2663 {
2667 GNUNET_SCHEDULER_cancel(plugin->env->sched, plugin->http_server_task_v6); 2664 GNUNET_SCHEDULER_cancel(plugin->http_server_task_v6);
2668 plugin->http_server_task_v6 = GNUNET_SCHEDULER_NO_TASK; 2665 plugin->http_server_task_v6 = GNUNET_SCHEDULER_NO_TASK;
2669 } 2666 }
2670 2667
@@ -2703,7 +2700,7 @@ LIBGNUNET_PLUGIN_TRANSPORT_DONE (void *cls)
2703 2700
2704 if ( plugin->http_curl_task != GNUNET_SCHEDULER_NO_TASK) 2701 if ( plugin->http_curl_task != GNUNET_SCHEDULER_NO_TASK)
2705 { 2702 {
2706 GNUNET_SCHEDULER_cancel(plugin->env->sched, plugin->http_curl_task); 2703 GNUNET_SCHEDULER_cancel(plugin->http_curl_task);
2707 plugin->http_curl_task = GNUNET_SCHEDULER_NO_TASK; 2704 plugin->http_curl_task = GNUNET_SCHEDULER_NO_TASK;
2708 } 2705 }
2709 2706