aboutsummaryrefslogtreecommitdiff
path: root/src/microhttpd/connection.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/microhttpd/connection.c')
-rw-r--r--src/microhttpd/connection.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/microhttpd/connection.c b/src/microhttpd/connection.c
index 0c49a39d..227fb625 100644
--- a/src/microhttpd/connection.c
+++ b/src/microhttpd/connection.c
@@ -3752,7 +3752,7 @@ process_request_body (struct MHD_Connection *connection)
3752 { 3752 {
3753 instant_retry = false; /* client did not process everything */ 3753 instant_retry = false; /* client did not process everything */
3754#ifdef HAVE_MESSAGES 3754#ifdef HAVE_MESSAGES
3755 if ((left_unprocessed == to_be_processed) && 3755 if ((! connection->rq.some_payload_processed) &&
3756 (! connection->suspended)) 3756 (! connection->suspended))
3757 { 3757 {
3758 /* client did not process any upload data, complain if 3758 /* client did not process any upload data, complain if
@@ -3767,8 +3767,6 @@ process_request_body (struct MHD_Connection *connection)
3767#endif /* HAVE_MESSAGES */ 3767#endif /* HAVE_MESSAGES */
3768 } 3768 }
3769 processed_size = to_be_processed - left_unprocessed; 3769 processed_size = to_be_processed - left_unprocessed;
3770 if (connection->rq.have_chunked_upload)
3771 connection->rq.current_chunk_offset += processed_size;
3772 /* dh left "processed" bytes in buffer for next time... */ 3770 /* dh left "processed" bytes in buffer for next time... */
3773 buffer_head += processed_size; 3771 buffer_head += processed_size;
3774 available -= processed_size; 3772 available -= processed_size;
@@ -3778,7 +3776,10 @@ process_request_body (struct MHD_Connection *connection)
3778 connection->rq.remaining_upload_size -= processed_size; 3776 connection->rq.remaining_upload_size -= processed_size;
3779 } 3777 }
3780 else 3778 else
3779 {
3781 mhd_assert (MHD_SIZE_UNKNOWN == connection->rq.remaining_upload_size); 3780 mhd_assert (MHD_SIZE_UNKNOWN == connection->rq.remaining_upload_size);
3781 connection->rq.current_chunk_offset += processed_size;
3782 }
3782 } while (instant_retry); 3783 } while (instant_retry);
3783 /* TODO: zero out reused memory region */ 3784 /* TODO: zero out reused memory region */
3784 if ( (available > 0) && 3785 if ( (available > 0) &&