aboutsummaryrefslogtreecommitdiff
path: root/src/transport/plugin_transport_http_client.c
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2011-09-26 13:35:28 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2011-09-26 13:35:28 +0000
commitdb7a7ef28e42cb253d5be3bde6ee580215f89f0a (patch)
tree6b8e959c34ea6f6b3131058e1dc1d27f8df995e7 /src/transport/plugin_transport_http_client.c
parent535d51c21e7ed8b8e1f9bec144c54f177de6b2f5 (diff)
downloadgnunet-db7a7ef28e42cb253d5be3bde6ee580215f89f0a.tar.gz
gnunet-db7a7ef28e42cb253d5be3bde6ee580215f89f0a.zip
removing incoherent address formats
cleaning up logging
Diffstat (limited to 'src/transport/plugin_transport_http_client.c')
-rw-r--r--src/transport/plugin_transport_http_client.c56
1 files changed, 44 insertions, 12 deletions
diff --git a/src/transport/plugin_transport_http_client.c b/src/transport/plugin_transport_http_client.c
index 715125dd0..c5fea94a1 100644
--- a/src/transport/plugin_transport_http_client.c
+++ b/src/transport/plugin_transport_http_client.c
@@ -51,7 +51,11 @@ client_log (CURL * curl, curl_infotype type, char *data, size_t size, void *cls)
51 text[size] = '\n'; 51 text[size] = '\n';
52 text[size + 1] = '\0'; 52 text[size + 1] = '\0';
53 } 53 }
54 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Client: %X - %s", cls, text); 54#if BUILD_HTTPS
55 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, "transport-https", "Client: %X - %s", cls, text);
56#else
57 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, "transport-http", "Client: %X - %s", cls, text);
58#endif
55 } 59 }
56 return 0; 60 return 0;
57} 61}
@@ -61,6 +65,8 @@ int
61client_send (struct Session *s, struct HTTP_Message *msg) 65client_send (struct Session *s, struct HTTP_Message *msg)
62{ 66{
63 GNUNET_CONTAINER_DLL_insert (s->msg_head, s->msg_tail, msg); 67 GNUNET_CONTAINER_DLL_insert (s->msg_head, s->msg_tail, msg);
68 if (s != NULL)
69 curl_easy_pause(s->client_put, CURLPAUSE_CONT);
64 return GNUNET_OK; 70 return GNUNET_OK;
65} 71}
66 72
@@ -183,7 +189,7 @@ client_run (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
183 { 189 {
184#if DEBUG_HTTP 190#if DEBUG_HTTP
185 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name, 191 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name,
186 "Connection to '%s' %s ended\n", GNUNET_i2s(&s->target), GNUNET_a2s (s->addr, s->addrlen)); 192 "Client: %X connection to '%s' %s ended\n", s, GNUNET_i2s(&s->target), GNUNET_a2s (s->addr, s->addrlen));
187#endif 193#endif
188 client_disconnect(s); 194 client_disconnect(s);
189 //GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name,"Notifying about ended session to peer `%s' `%s'\n", GNUNET_i2s (&s->target), http_plugin_address_to_string (plugin, s->addr, s->addrlen)); 195 //GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name,"Notifying about ended session to peer `%s' `%s'\n", GNUNET_i2s (&s->target), http_plugin_address_to_string (plugin, s->addr, s->addrlen));
@@ -210,7 +216,8 @@ client_disconnect (struct Session *s)
210 216
211#if DEBUG_HTTP 217#if DEBUG_HTTP
212 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name, 218 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name,
213 "Client: Deleting outbound PUT session to peer `%s'\n", 219 "Client: %X Deleting outbound PUT session to peer `%s'\n",
220 s,
214 GNUNET_i2s (&s->target)); 221 GNUNET_i2s (&s->target));
215#endif 222#endif
216 223
@@ -229,9 +236,15 @@ client_disconnect (struct Session *s)
229 236
230#if DEBUG_HTTP 237#if DEBUG_HTTP
231 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name, 238 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name,
232 "Client: Deleting outbound GET session to peer `%s'\n", 239 "Client: %X Deleting outbound GET session to peer `%s'\n",
240 s,
233 GNUNET_i2s (&s->target)); 241 GNUNET_i2s (&s->target));
234#endif 242#endif
243 if (s->recv_wakeup_task != GNUNET_SCHEDULER_NO_TASK)
244 {
245 GNUNET_SCHEDULER_cancel (s->recv_wakeup_task);
246 s->recv_wakeup_task = GNUNET_SCHEDULER_NO_TASK;
247 }
235 248
236 if (s->client_get != NULL) 249 if (s->client_get != NULL)
237 { 250 {
@@ -290,6 +303,18 @@ client_receive_mst_cb (void *cls, void *client,
290#endif 303#endif
291 } 304 }
292} 305}
306static void
307client_wake_up (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
308{
309 struct Session *s = cls;
310
311 s->recv_wakeup_task = GNUNET_SCHEDULER_NO_TASK;
312 if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
313 return;
314
315 if (s->client_get != NULL)
316 curl_easy_pause(s->client_get, CURLPAUSE_CONT);
317}
293 318
294/** 319/**
295* Callback method used with libcurl 320* Callback method used with libcurl
@@ -305,6 +330,7 @@ client_receive (void *stream, size_t size, size_t nmemb, void *cls)
305{ 330{
306 struct Session *s = cls; 331 struct Session *s = cls;
307 struct Plugin *plugin = s->plugin; 332 struct Plugin *plugin = s->plugin;
333 struct GNUNET_TIME_Absolute now;
308 334
309#if VERBOSE_CLIENT 335#if VERBOSE_CLIENT
310 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name, "Client: Received %Zu bytes from peer `%s'\n", 336 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name, "Client: Received %Zu bytes from peer `%s'\n",
@@ -312,14 +338,21 @@ client_receive (void *stream, size_t size, size_t nmemb, void *cls)
312 GNUNET_i2s (&s->target)); 338 GNUNET_i2s (&s->target));
313#endif 339#endif
314 340
315 if (GNUNET_TIME_absolute_get().abs_value < s->delay.abs_value) 341 now = GNUNET_TIME_absolute_get();
342 if (now.abs_value < s->delay.abs_value)
316 { 343 {
317#if DEBUG_CLIENT 344#if DEBUG_CLIENT
318 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 345 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
319 "no inbound bandwidth available! Next read was delayed for %llu ms\n", 346 "No inbound bandwidth available! Next read was delayed for %llu ms\n",
320 s, GNUNET_TIME_absolute_get_difference(s->delay, GNUNET_TIME_absolute_get()).rel_value); 347 s, GNUNET_TIME_absolute_get_difference(s->delay, GNUNET_TIME_absolute_get()).rel_value);
321#endif 348#endif
322 return 0; 349 if (s->recv_wakeup_task != GNUNET_SCHEDULER_NO_TASK)
350 {
351 GNUNET_SCHEDULER_cancel (s->recv_wakeup_task);
352 s->recv_wakeup_task = GNUNET_SCHEDULER_NO_TASK;
353 }
354 s->recv_wakeup_task = GNUNET_SCHEDULER_add_delayed( GNUNET_TIME_absolute_get_difference(s->delay, now), &client_wake_up, s);
355 return CURLPAUSE_ALL;
323 } 356 }
324 357
325 358
@@ -345,7 +378,7 @@ static size_t
345client_send_cb (void *stream, size_t size, size_t nmemb, void *cls) 378client_send_cb (void *stream, size_t size, size_t nmemb, void *cls)
346{ 379{
347 struct Session *s = cls; 380 struct Session *s = cls;
348 //struct Plugin *plugin = s->plugin; 381 struct Plugin *plugin = s->plugin;
349 size_t bytes_sent = 0; 382 size_t bytes_sent = 0;
350 size_t len; 383 size_t len;
351 384
@@ -394,9 +427,9 @@ client_send_cb (void *stream, size_t size, size_t nmemb, void *cls)
394 if (msg->pos == msg->size) 427 if (msg->pos == msg->size)
395 { 428 {
396#if VERBOSE_CLIENT 429#if VERBOSE_CLIENT
397 GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, 430 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name,
398 "Message with %u bytes sent, removing message from queue\n", 431 "Client: %X Message with %u bytes sent, removing message from queue\n",
399 s, msg->pos); 432 s, msg->size, msg->pos);
400#endif 433#endif
401 /* Calling transmit continuation */ 434 /* Calling transmit continuation */
402 if (NULL != msg->transmit_cont) 435 if (NULL != msg->transmit_cont)
@@ -426,7 +459,6 @@ client_connect (struct Session *s)
426 plugin->last_tag++; 459 plugin->last_tag++;
427 /* create url */ 460 /* create url */
428 GNUNET_asprintf (&url, "%s%s;%u", http_plugin_address_to_string (plugin, s->addr, s->addrlen), GNUNET_h2s_full (&plugin->env->my_identity->hashPubKey),plugin->last_tag); 461 GNUNET_asprintf (&url, "%s%s;%u", http_plugin_address_to_string (plugin, s->addr, s->addrlen), GNUNET_h2s_full (&plugin->env->my_identity->hashPubKey),plugin->last_tag);
429 //GNUNET_asprintf (&url, "http://www.heise.de", http_plugin_address_to_string (plugin, s->addr, s->addrlen), GNUNET_h2s_full (&plugin->env->my_identity->hashPubKey),plugin->last_tag);
430#if 0 462#if 0
431 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name, 463 GNUNET_log_from (GNUNET_ERROR_TYPE_DEBUG, plugin->name,
432 "URL `%s'\n", 464 "URL `%s'\n",