aboutsummaryrefslogtreecommitdiff
path: root/src/gns/gnunet-gns-proxy.c
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2018-05-16 21:35:37 +0200
committerChristian Grothoff <christian@grothoff.org>2018-05-16 21:36:38 +0200
commit215e607f63847c77bd26d4c97eae8c7d6ca7f4a0 (patch)
treec8747261f2e4777a7a20cc735661bd3ba25404f3 /src/gns/gnunet-gns-proxy.c
parent96f4f72bcd0b0314a29783b64a31a76e9c62bf86 (diff)
downloadgnunet-215e607f63847c77bd26d4c97eae8c7d6ca7f4a0.tar.gz
gnunet-215e607f63847c77bd26d4c97eae8c7d6ca7f4a0.zip
optimize setting upload length if available
Diffstat (limited to 'src/gns/gnunet-gns-proxy.c')
-rw-r--r--src/gns/gnunet-gns-proxy.c34
1 files changed, 34 insertions, 0 deletions
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 {