aboutsummaryrefslogtreecommitdiff
path: root/src/daemon/connection.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/daemon/connection.c')
-rw-r--r--src/daemon/connection.c52
1 files changed, 24 insertions, 28 deletions
diff --git a/src/daemon/connection.c b/src/daemon/connection.c
index cb3affc8..b612b8e7 100644
--- a/src/daemon/connection.c
+++ b/src/daemon/connection.c
@@ -1836,40 +1836,36 @@ parse_connection_headers (struct MHD_Connection *connection)
1836 return; 1836 return;
1837 } 1837 }
1838 1838
1839 clen = MHD_lookup_connection_value (connection, 1839 connection->remaining_upload_size = 0;
1840 MHD_HEADER_KIND, 1840 enc = MHD_lookup_connection_value (connection,
1841 MHD_HTTP_HEADER_CONTENT_LENGTH); 1841 MHD_HEADER_KIND,
1842 if (clen != NULL) 1842 MHD_HTTP_HEADER_TRANSFER_ENCODING);
1843 if (enc != NULL)
1843 { 1844 {
1844 cval = strtoul (clen, &end, 10); 1845 connection->remaining_upload_size = MHD_SIZE_UNKNOWN;
1845 if ( ('\0' != *end) || 1846 if (0 == strcasecmp (enc, "chunked"))
1846 ( (LONG_MAX == cval) && (errno == ERANGE) ) ) 1847 connection->have_chunked_upload = MHD_YES;
1848 }
1849 else
1850 {
1851 clen = MHD_lookup_connection_value (connection,
1852 MHD_HEADER_KIND,
1853 MHD_HTTP_HEADER_CONTENT_LENGTH);
1854 if (clen != NULL)
1847 { 1855 {
1856 cval = strtoul (clen, &end, 10);
1857 if ( ('\0' != *end) ||
1858 ( (LONG_MAX == cval) && (errno == ERANGE) ) )
1859 {
1848#if HAVE_MESSAGES 1860#if HAVE_MESSAGES
1849 MHD_DLOG (connection->daemon, 1861 MHD_DLOG (connection->daemon,
1850 "Failed to parse `%s' header `%s', closing connection.\n", 1862 "Failed to parse `%s' header `%s', closing connection.\n",
1851 MHD_HTTP_HEADER_CONTENT_LENGTH, clen); 1863 MHD_HTTP_HEADER_CONTENT_LENGTH, clen);
1852#endif 1864#endif
1853 CONNECTION_CLOSE_ERROR (connection, NULL); 1865 CONNECTION_CLOSE_ERROR (connection, NULL);
1854 return; 1866 return;
1855 } 1867 }
1856 connection->remaining_upload_size = cval; 1868 connection->remaining_upload_size = cval;
1857 }
1858 else
1859 {
1860 enc = MHD_lookup_connection_value (connection,
1861 MHD_HEADER_KIND,
1862 MHD_HTTP_HEADER_TRANSFER_ENCODING);
1863 if (NULL == enc)
1864 {
1865 /* this request (better) not have a body */
1866 connection->remaining_upload_size = 0;
1867 }
1868 else
1869 {
1870 connection->remaining_upload_size = MHD_SIZE_UNKNOWN;
1871 if (0 == strcasecmp (enc, "chunked"))
1872 connection->have_chunked_upload = MHD_YES;
1873 } 1869 }
1874 } 1870 }
1875} 1871}