diff options
author | Christian Grothoff <christian@grothoff.org> | 2018-05-16 21:35:37 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2018-05-16 21:36:38 +0200 |
commit | 215e607f63847c77bd26d4c97eae8c7d6ca7f4a0 (patch) | |
tree | c8747261f2e4777a7a20cc735661bd3ba25404f3 /src/gns/gnunet-gns-proxy.c | |
parent | 96f4f72bcd0b0314a29783b64a31a76e9c62bf86 (diff) | |
download | gnunet-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.c | 34 |
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 | { |