diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/gns/gnunet-gns-benchmark.c | 2 | ||||
-rw-r--r-- | src/gns/gnunet-gns-proxy.c | 34 | ||||
-rw-r--r-- | src/gns/gnunet-service-gns.c | 19 |
3 files changed, 45 insertions, 10 deletions
diff --git a/src/gns/gnunet-gns-benchmark.c b/src/gns/gnunet-gns-benchmark.c index afa540c85..d5afae9f6 100644 --- a/src/gns/gnunet-gns-benchmark.c +++ b/src/gns/gnunet-gns-benchmark.c | |||
@@ -492,7 +492,7 @@ process_stdin (void *cls) | |||
492 | delta = GNUNET_TIME_absolute_get_duration (last); | 492 | delta = GNUNET_TIME_absolute_get_duration (last); |
493 | last = GNUNET_TIME_absolute_get (); | 493 | last = GNUNET_TIME_absolute_get (); |
494 | fprintf (stderr, | 494 | fprintf (stderr, |
495 | "Read 10000 domain names in %s\n", | 495 | "Read 100000 domain names in %s\n", |
496 | GNUNET_STRINGS_relative_time_to_string (delta, | 496 | GNUNET_STRINGS_relative_time_to_string (delta, |
497 | GNUNET_YES)); | 497 | GNUNET_YES)); |
498 | } | 498 | } |
diff --git a/src/gns/gnunet-gns-proxy.c b/src/gns/gnunet-gns-proxy.c index 08663a57e..02ebcf0f1 100644 --- a/src/gns/gnunet-gns-proxy.c +++ b/src/gns/gnunet-gns-proxy.c | |||
@@ -1801,6 +1801,23 @@ create_response (void *cls, | |||
1801 | curl_easy_setopt (s5r->curl, CURLOPT_WRITEDATA, s5r); | 1801 | curl_easy_setopt (s5r->curl, CURLOPT_WRITEDATA, s5r); |
1802 | curl_easy_setopt (s5r->curl, CURLOPT_READFUNCTION, &curl_upload_cb); | 1802 | curl_easy_setopt (s5r->curl, CURLOPT_READFUNCTION, &curl_upload_cb); |
1803 | curl_easy_setopt (s5r->curl, CURLOPT_READDATA, s5r); | 1803 | curl_easy_setopt (s5r->curl, CURLOPT_READDATA, s5r); |
1804 | { | ||
1805 | const char *us; | ||
1806 | long upload_size; | ||
1807 | |||
1808 | us = MHD_lookup_connection_value (con, | ||
1809 | MHD_HEADER_KIND, | ||
1810 | MHD_HTTP_HEADER_CONTENT_LENGTH); | ||
1811 | if ( (1 == sscanf (us, | ||
1812 | "%ld", | ||
1813 | &upload_size)) && | ||
1814 | (upload_size >= 0) ) | ||
1815 | { | ||
1816 | curl_easy_setopt (s5r->curl, | ||
1817 | CURLOPT_INFILESIZE, | ||
1818 | upload_size); | ||
1819 | } | ||
1820 | } | ||
1804 | } | 1821 | } |
1805 | else if (0 == strcasecmp (meth, MHD_HTTP_METHOD_POST)) | 1822 | else if (0 == strcasecmp (meth, MHD_HTTP_METHOD_POST)) |
1806 | { | 1823 | { |
@@ -1810,6 +1827,23 @@ create_response (void *cls, | |||
1810 | curl_easy_setopt (s5r->curl, CURLOPT_WRITEDATA, s5r); | 1827 | curl_easy_setopt (s5r->curl, CURLOPT_WRITEDATA, s5r); |
1811 | curl_easy_setopt (s5r->curl, CURLOPT_READFUNCTION, &curl_upload_cb); | 1828 | curl_easy_setopt (s5r->curl, CURLOPT_READFUNCTION, &curl_upload_cb); |
1812 | curl_easy_setopt (s5r->curl, CURLOPT_READDATA, s5r); | 1829 | curl_easy_setopt (s5r->curl, CURLOPT_READDATA, s5r); |
1830 | { | ||
1831 | const char *us; | ||
1832 | long upload_size; | ||
1833 | |||
1834 | us = MHD_lookup_connection_value (con, | ||
1835 | MHD_HEADER_KIND, | ||
1836 | MHD_HTTP_HEADER_CONTENT_LENGTH); | ||
1837 | if ( (1 == sscanf (us, | ||
1838 | "%ld", | ||
1839 | &upload_size)) && | ||
1840 | (upload_size >= 0) ) | ||
1841 | { | ||
1842 | curl_easy_setopt (s5r->curl, | ||
1843 | CURLOPT_INFILESIZE, | ||
1844 | upload_size); | ||
1845 | } | ||
1846 | } | ||
1813 | } | 1847 | } |
1814 | else if (0 == strcasecmp (meth, MHD_HTTP_METHOD_HEAD)) | 1848 | else if (0 == strcasecmp (meth, MHD_HTTP_METHOD_HEAD)) |
1815 | { | 1849 | { |
diff --git a/src/gns/gnunet-service-gns.c b/src/gns/gnunet-service-gns.c index c376ddfcc..cffae824d 100644 --- a/src/gns/gnunet-service-gns.c +++ b/src/gns/gnunet-service-gns.c | |||
@@ -296,7 +296,6 @@ client_disconnect_cb (void *cls, | |||
296 | clh); | 296 | clh); |
297 | GNUNET_free (clh); | 297 | GNUNET_free (clh); |
298 | } | 298 | } |
299 | |||
300 | GNUNET_free (gc); | 299 | GNUNET_free (gc); |
301 | } | 300 | } |
302 | 301 | ||
@@ -340,26 +339,29 @@ send_lookup_response (void* cls, | |||
340 | const struct GNUNET_GNSRECORD_Data *rd) | 339 | const struct GNUNET_GNSRECORD_Data *rd) |
341 | { | 340 | { |
342 | struct ClientLookupHandle *clh = cls; | 341 | struct ClientLookupHandle *clh = cls; |
343 | struct GNUNET_MQ_Envelope *env; | 342 | struct GnsClient *gc = clh->gc; |
343 | struct GNUNET_MQ_Envelope *env; | ||
344 | struct LookupResultMessage *rmsg; | 344 | struct LookupResultMessage *rmsg; |
345 | size_t len; | 345 | size_t len; |
346 | 346 | ||
347 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 347 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
348 | "Sending LOOKUP_RESULT message with %u results\n", | 348 | "Sending LOOKUP_RESULT message with %u results\n", |
349 | (unsigned int) rd_count); | 349 | (unsigned int) rd_count); |
350 | 350 | len = GNUNET_GNSRECORD_records_get_size (rd_count, | |
351 | len = GNUNET_GNSRECORD_records_get_size (rd_count, rd); | 351 | rd); |
352 | env = GNUNET_MQ_msg_extra (rmsg, | 352 | env = GNUNET_MQ_msg_extra (rmsg, |
353 | len, | 353 | len, |
354 | GNUNET_MESSAGE_TYPE_GNS_LOOKUP_RESULT); | 354 | GNUNET_MESSAGE_TYPE_GNS_LOOKUP_RESULT); |
355 | rmsg->id = clh->request_id; | 355 | rmsg->id = clh->request_id; |
356 | rmsg->rd_count = htonl (rd_count); | 356 | rmsg->rd_count = htonl (rd_count); |
357 | GNUNET_GNSRECORD_records_serialize (rd_count, rd, len, | 357 | GNUNET_GNSRECORD_records_serialize (rd_count, |
358 | rd, | ||
359 | len, | ||
358 | (char*) &rmsg[1]); | 360 | (char*) &rmsg[1]); |
359 | GNUNET_MQ_send (GNUNET_SERVICE_client_get_mq(clh->gc->client), | 361 | GNUNET_MQ_send (GNUNET_SERVICE_client_get_mq (gc->client), |
360 | env); | 362 | env); |
361 | GNUNET_CONTAINER_DLL_remove (clh->gc->clh_head, | 363 | GNUNET_CONTAINER_DLL_remove (gc->clh_head, |
362 | clh->gc->clh_tail, | 364 | gc->clh_tail, |
363 | clh); | 365 | clh); |
364 | GNUNET_free (clh); | 366 | GNUNET_free (clh); |
365 | GNUNET_STATISTICS_update (statistics, | 367 | GNUNET_STATISTICS_update (statistics, |
@@ -428,7 +430,6 @@ handle_lookup (void *cls, | |||
428 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 430 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
429 | "Received LOOKUP `%s' message\n", | 431 | "Received LOOKUP `%s' message\n", |
430 | name); | 432 | name); |
431 | |||
432 | clh = GNUNET_new (struct ClientLookupHandle); | 433 | clh = GNUNET_new (struct ClientLookupHandle); |
433 | GNUNET_CONTAINER_DLL_insert (gc->clh_head, | 434 | GNUNET_CONTAINER_DLL_insert (gc->clh_head, |
434 | gc->clh_tail, | 435 | gc->clh_tail, |