diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2011-09-27 13:06:14 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2011-09-27 13:06:14 +0000 |
commit | feb23c882f551a652d6c9ac8cca92811e3681f35 (patch) | |
tree | bd51cc86d21a13553e387301a241746a614df717 /src/transport/plugin_transport_http_client.c | |
parent | baf92f5983fcc0515a4c477ceabe0ed593b18d66 (diff) | |
download | gnunet-feb23c882f551a652d6c9ac8cca92811e3681f35.tar.gz gnunet-feb23c882f551a652d6c9ac8cca92811e3681f35.zip |
client bw throttling
Diffstat (limited to 'src/transport/plugin_transport_http_client.c')
-rw-r--r-- | src/transport/plugin_transport_http_client.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/transport/plugin_transport_http_client.c b/src/transport/plugin_transport_http_client.c index 89acb4641..5c4726fcb 100644 --- a/src/transport/plugin_transport_http_client.c +++ b/src/transport/plugin_transport_http_client.c | |||
@@ -326,11 +326,17 @@ client_wake_up (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
326 | struct Session *s = cls; | 326 | struct Session *s = cls; |
327 | 327 | ||
328 | s->recv_wakeup_task = GNUNET_SCHEDULER_NO_TASK; | 328 | s->recv_wakeup_task = GNUNET_SCHEDULER_NO_TASK; |
329 | |||
329 | if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) | 330 | if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN)) |
330 | return; | 331 | return; |
331 | 332 | ||
333 | GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, s->plugin->name, | ||
334 | "Client: %X Waking up receive handle\n", | ||
335 | s->client_get); | ||
336 | |||
332 | if (s->client_get != NULL) | 337 | if (s->client_get != NULL) |
333 | curl_easy_pause(s->client_get, CURLPAUSE_CONT); | 338 | curl_easy_pause(s->client_get, CURLPAUSE_CONT); |
339 | |||
334 | } | 340 | } |
335 | 341 | ||
336 | /** | 342 | /** |
@@ -360,20 +366,20 @@ client_receive (void *stream, size_t size, size_t nmemb, void *cls) | |||
360 | now = GNUNET_TIME_absolute_get(); | 366 | now = GNUNET_TIME_absolute_get(); |
361 | if (now.abs_value < s->next_receive.abs_value) | 367 | if (now.abs_value < s->next_receive.abs_value) |
362 | { | 368 | { |
369 | struct GNUNET_TIME_Absolute now = GNUNET_TIME_absolute_get(); | ||
370 | struct GNUNET_TIME_Relative delta = GNUNET_TIME_absolute_get_difference(now, s->next_receive); | ||
363 | #if DEBUG_CLIENT | 371 | #if DEBUG_CLIENT |
364 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 372 | GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name, |
365 | "No inbound bandwidth available! Next read was delayed for %llu ms\n", | 373 | "Client: %X No inbound bandwidth available! Next read was delayed for %llu ms\n", |
366 | s, GNUNET_TIME_absolute_get_difference(s->next_receive, GNUNET_TIME_absolute_get()).rel_value); | 374 | s->client_get, delta.rel_value); |
367 | #endif | 375 | #endif |
368 | #if 0 | ||
369 | if (s->recv_wakeup_task != GNUNET_SCHEDULER_NO_TASK) | 376 | if (s->recv_wakeup_task != GNUNET_SCHEDULER_NO_TASK) |
370 | { | 377 | { |
371 | GNUNET_SCHEDULER_cancel (s->recv_wakeup_task); | 378 | GNUNET_SCHEDULER_cancel (s->recv_wakeup_task); |
372 | s->recv_wakeup_task = GNUNET_SCHEDULER_NO_TASK; | 379 | s->recv_wakeup_task = GNUNET_SCHEDULER_NO_TASK; |
373 | } | 380 | } |
374 | s->recv_wakeup_task = GNUNET_SCHEDULER_add_delayed( GNUNET_TIME_absolute_get_difference(s->next_receive, now), &client_wake_up, s); | 381 | s->recv_wakeup_task = GNUNET_SCHEDULER_add_delayed (delta, &client_wake_up, s); |
375 | return CURLPAUSE_ALL; | 382 | return CURLPAUSE_ALL; |
376 | #endif | ||
377 | } | 383 | } |
378 | 384 | ||
379 | 385 | ||
@@ -384,8 +390,7 @@ client_receive (void *stream, size_t size, size_t nmemb, void *cls) | |||
384 | GNUNET_NO); | 390 | GNUNET_NO); |
385 | 391 | ||
386 | return len; | 392 | return len; |
387 | 393 | client_wake_up(NULL,NULL); | |
388 | client_wake_up (NULL, NULL); | ||
389 | } | 394 | } |
390 | 395 | ||
391 | /** | 396 | /** |