aboutsummaryrefslogtreecommitdiff
path: root/src/transport/plugin_transport_http_client.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/transport/plugin_transport_http_client.c')
-rw-r--r--src/transport/plugin_transport_http_client.c37
1 files changed, 17 insertions, 20 deletions
diff --git a/src/transport/plugin_transport_http_client.c b/src/transport/plugin_transport_http_client.c
index cd68a0069..bc2051eef 100644
--- a/src/transport/plugin_transport_http_client.c
+++ b/src/transport/plugin_transport_http_client.c
@@ -146,7 +146,9 @@ client_send (struct Session *s, struct HTTP_Message *msg)
146 146
147 if ((s != NULL) && (s->client_put_paused == GNUNET_YES)) 147 if ((s != NULL) && (s->client_put_paused == GNUNET_YES))
148 { 148 {
149#if VERBOSE_CLIENT
149 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, s->plugin->name, "Client: %X was suspended, unpausing\n", s->client_put); 150 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, s->plugin->name, "Client: %X was suspended, unpausing\n", s->client_put);
151#endif
150 s->client_put_paused = GNUNET_NO; 152 s->client_put_paused = GNUNET_NO;
151 curl_easy_pause(s->client_put, CURLPAUSE_CONT); 153 curl_easy_pause(s->client_put, CURLPAUSE_CONT);
152 } 154 }
@@ -306,10 +308,13 @@ client_receive_mst_cb (void *cls, void *client,
306 struct GNUNET_TIME_Relative delay; 308 struct GNUNET_TIME_Relative delay;
307 309
308 delay = http_plugin_receive (s, &s->target, message, s, s->addr, s->addrlen); 310 delay = http_plugin_receive (s, &s->target, message, s, s->addr, s->addrlen);
311 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name, "CLIENT: CLIENT DELAY %llu ms\n",
312 delay.rel_value);
313
309 314
310 s->delay = GNUNET_TIME_absolute_add(GNUNET_TIME_absolute_get(), delay); 315 s->next_receive = GNUNET_TIME_absolute_add(GNUNET_TIME_absolute_get(), delay);
311 316
312 if (GNUNET_TIME_absolute_get().abs_value < s->delay.abs_value) 317 if (GNUNET_TIME_absolute_get().abs_value < s->next_receive.abs_value)
313 { 318 {
314#if VERBOSE_CLIENT 319#if VERBOSE_CLIENT
315 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name, "Client: peer `%s' address `%s' next read delayed for %llu ms\n", 320 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name, "Client: peer `%s' address `%s' next read delayed for %llu ms\n",
@@ -343,32 +348,32 @@ static size_t
343client_receive (void *stream, size_t size, size_t nmemb, void *cls) 348client_receive (void *stream, size_t size, size_t nmemb, void *cls)
344{ 349{
345 struct Session *s = cls; 350 struct Session *s = cls;
346 struct Plugin *plugin = s->plugin;
347 struct GNUNET_TIME_Absolute now; 351 struct GNUNET_TIME_Absolute now;
348 size_t len = size * nmemb; 352 size_t len = size * nmemb;
349 353
350 354
351#if VERBOSE_CLIENT 355#if VERBOSE_CLIENT
356 struct Plugin *plugin = s->plugin;
352 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name, "Client: Received %Zu bytes from peer `%s'\n", 357 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name, "Client: Received %Zu bytes from peer `%s'\n",
353 len, 358 len,
354 GNUNET_i2s (&s->target)); 359 GNUNET_i2s (&s->target));
355#endif 360#endif
356 361
357 now = GNUNET_TIME_absolute_get(); 362 now = GNUNET_TIME_absolute_get();
358 if (now.abs_value < s->delay.abs_value) 363 if (now.abs_value < s->next_receive.abs_value)
359 { 364 {
360#if 0
361#if DEBUG_CLIENT 365#if DEBUG_CLIENT
362 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 366 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
363 "No inbound bandwidth available! Next read was delayed for %llu ms\n", 367 "No inbound bandwidth available! Next read was delayed for %llu ms\n",
364 s, GNUNET_TIME_absolute_get_difference(s->delay, GNUNET_TIME_absolute_get()).rel_value); 368 s, GNUNET_TIME_absolute_get_difference(s->next_receive, GNUNET_TIME_absolute_get()).rel_value);
365#endif 369#endif
370#if 0
366 if (s->recv_wakeup_task != GNUNET_SCHEDULER_NO_TASK) 371 if (s->recv_wakeup_task != GNUNET_SCHEDULER_NO_TASK)
367 { 372 {
368 GNUNET_SCHEDULER_cancel (s->recv_wakeup_task); 373 GNUNET_SCHEDULER_cancel (s->recv_wakeup_task);
369 s->recv_wakeup_task = GNUNET_SCHEDULER_NO_TASK; 374 s->recv_wakeup_task = GNUNET_SCHEDULER_NO_TASK;
370 } 375 }
371 s->recv_wakeup_task = GNUNET_SCHEDULER_add_delayed( GNUNET_TIME_absolute_get_difference(s->delay, now), &client_wake_up, s); 376 s->recv_wakeup_task = GNUNET_SCHEDULER_add_delayed( GNUNET_TIME_absolute_get_difference(s->next_receive, now), &client_wake_up, s);
372 return CURLPAUSE_ALL; 377 return CURLPAUSE_ALL;
373#endif 378#endif
374 } 379 }
@@ -398,27 +403,19 @@ static size_t
398client_send_cb (void *stream, size_t size, size_t nmemb, void *cls) 403client_send_cb (void *stream, size_t size, size_t nmemb, void *cls)
399{ 404{
400 struct Session *s = cls; 405 struct Session *s = cls;
406#if VERBOSE_CLIENT
401 struct Plugin *plugin = s->plugin; 407 struct Plugin *plugin = s->plugin;
408#endif
402 size_t bytes_sent = 0; 409 size_t bytes_sent = 0;
403 size_t len; 410 size_t len;
404 411
405 struct HTTP_Message *msg = s->msg_head; 412 struct HTTP_Message *msg = s->msg_head;
406/* 413
407 if (s->put_paused == GNUNET_NO)
408 return CURL_READFUNC_PAUSE;
409 if ((s->msg_head == NULL) && (s->put_paused == GNUNET_YES))
410 {
411#if VERBOSE_CLIENT
412 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name, "Suspending handle `%s' `%s'\n",
413 GNUNET_i2s (&s->target),GNUNET_a2s (s->addr, s->addrlen));
414#endif
415 s->put_paused = GNUNET_NO;
416 return CURL_READFUNC_PAUSE;
417 }
418*/
419 if (msg == NULL) 414 if (msg == NULL)
420 { 415 {
416#if VERBOSE_CLIENT
421 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name, "Client: %X Nothing to send! Suspending PUT handle!\n", s->client_put); 417 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name, "Client: %X Nothing to send! Suspending PUT handle!\n", s->client_put);
418#endif
422 s->client_put_paused = GNUNET_YES; 419 s->client_put_paused = GNUNET_YES;
423 return CURL_READFUNC_PAUSE; 420 return CURL_READFUNC_PAUSE;
424 } 421 }