diff options
Diffstat (limited to 'src/microhttpd/connection.c')
-rw-r--r-- | src/microhttpd/connection.c | 37 |
1 files changed, 18 insertions, 19 deletions
diff --git a/src/microhttpd/connection.c b/src/microhttpd/connection.c index 7624711a..ddc60d85 100644 --- a/src/microhttpd/connection.c +++ b/src/microhttpd/connection.c | |||
@@ -2280,7 +2280,7 @@ build_connection_chunked_response_footer (struct MHD_Connection *connection) | |||
2280 | mhd_assert (connection->rp.props.chunked); | 2280 | mhd_assert (connection->rp.props.chunked); |
2281 | /* TODO: allow combining of the final footer with the last chunk, | 2281 | /* TODO: allow combining of the final footer with the last chunk, |
2282 | * modify the next assert. */ | 2282 | * modify the next assert. */ |
2283 | mhd_assert (MHD_CONNECTION_BODY_SENT == connection->state); | 2283 | mhd_assert (MHD_CONNECTION_CHUNKED_BODY_SENT == connection->state); |
2284 | mhd_assert (NULL != c->rp.response); | 2284 | mhd_assert (NULL != c->rp.response); |
2285 | 2285 | ||
2286 | buf_size = connection_maximize_write_buffer (c); | 2286 | buf_size = connection_maximize_write_buffer (c); |
@@ -2624,13 +2624,13 @@ MHD_connection_update_event_loop_info (struct MHD_Connection *connection) | |||
2624 | case MHD_CONNECTION_CHUNKED_BODY_UNREADY: | 2624 | case MHD_CONNECTION_CHUNKED_BODY_UNREADY: |
2625 | connection->event_loop_info = MHD_EVENT_LOOP_INFO_BLOCK; | 2625 | connection->event_loop_info = MHD_EVENT_LOOP_INFO_BLOCK; |
2626 | break; | 2626 | break; |
2627 | case MHD_CONNECTION_BODY_SENT: | 2627 | case MHD_CONNECTION_CHUNKED_BODY_SENT: |
2628 | mhd_assert (0); | 2628 | mhd_assert (0); |
2629 | break; | 2629 | break; |
2630 | case MHD_CONNECTION_FOOTERS_SENDING: | 2630 | case MHD_CONNECTION_FOOTERS_SENDING: |
2631 | connection->event_loop_info = MHD_EVENT_LOOP_INFO_WRITE; | 2631 | connection->event_loop_info = MHD_EVENT_LOOP_INFO_WRITE; |
2632 | break; | 2632 | break; |
2633 | case MHD_CONNECTION_FOOTERS_SENT: | 2633 | case MHD_CONNECTION_FULL_REPLY_SENT: |
2634 | mhd_assert (0); | 2634 | mhd_assert (0); |
2635 | break; | 2635 | break; |
2636 | case MHD_CONNECTION_CLOSED: | 2636 | case MHD_CONNECTION_CLOSED: |
@@ -4208,9 +4208,9 @@ MHD_connection_handle_read (struct MHD_Connection *connection, | |||
4208 | case MHD_CONNECTION_NORMAL_BODY_READY: | 4208 | case MHD_CONNECTION_NORMAL_BODY_READY: |
4209 | case MHD_CONNECTION_CHUNKED_BODY_UNREADY: | 4209 | case MHD_CONNECTION_CHUNKED_BODY_UNREADY: |
4210 | case MHD_CONNECTION_CHUNKED_BODY_READY: | 4210 | case MHD_CONNECTION_CHUNKED_BODY_READY: |
4211 | case MHD_CONNECTION_BODY_SENT: | 4211 | case MHD_CONNECTION_CHUNKED_BODY_SENT: |
4212 | case MHD_CONNECTION_FOOTERS_SENDING: | 4212 | case MHD_CONNECTION_FOOTERS_SENDING: |
4213 | case MHD_CONNECTION_FOOTERS_SENT: | 4213 | case MHD_CONNECTION_FULL_REPLY_SENT: |
4214 | default: | 4214 | default: |
4215 | mhd_assert (0); /* Should not be possible */ | 4215 | mhd_assert (0); /* Should not be possible */ |
4216 | } | 4216 | } |
@@ -4466,7 +4466,7 @@ MHD_connection_handle_write (struct MHD_Connection *connection) | |||
4466 | } | 4466 | } |
4467 | if (connection->rp.rsp_write_position == | 4467 | if (connection->rp.rsp_write_position == |
4468 | connection->rp.response->total_size) | 4468 | connection->rp.response->total_size) |
4469 | connection->state = MHD_CONNECTION_FOOTERS_SENT; /* have no footers */ | 4469 | connection->state = MHD_CONNECTION_FULL_REPLY_SENT; |
4470 | return; | 4470 | return; |
4471 | case MHD_CONNECTION_NORMAL_BODY_UNREADY: | 4471 | case MHD_CONNECTION_NORMAL_BODY_UNREADY: |
4472 | mhd_assert (0); | 4472 | mhd_assert (0); |
@@ -4500,11 +4500,11 @@ MHD_connection_handle_write (struct MHD_Connection *connection) | |||
4500 | check_write_done (connection, | 4500 | check_write_done (connection, |
4501 | (connection->rp.response->total_size == | 4501 | (connection->rp.response->total_size == |
4502 | connection->rp.rsp_write_position) ? | 4502 | connection->rp.rsp_write_position) ? |
4503 | MHD_CONNECTION_BODY_SENT : | 4503 | MHD_CONNECTION_CHUNKED_BODY_SENT : |
4504 | MHD_CONNECTION_CHUNKED_BODY_UNREADY); | 4504 | MHD_CONNECTION_CHUNKED_BODY_UNREADY); |
4505 | return; | 4505 | return; |
4506 | case MHD_CONNECTION_CHUNKED_BODY_UNREADY: | 4506 | case MHD_CONNECTION_CHUNKED_BODY_UNREADY: |
4507 | case MHD_CONNECTION_BODY_SENT: | 4507 | case MHD_CONNECTION_CHUNKED_BODY_SENT: |
4508 | mhd_assert (0); | 4508 | mhd_assert (0); |
4509 | return; | 4509 | return; |
4510 | case MHD_CONNECTION_FOOTERS_SENDING: | 4510 | case MHD_CONNECTION_FOOTERS_SENDING: |
@@ -4534,9 +4534,9 @@ MHD_connection_handle_write (struct MHD_Connection *connection) | |||
4534 | if (MHD_CONNECTION_FOOTERS_SENDING != connection->state) | 4534 | if (MHD_CONNECTION_FOOTERS_SENDING != connection->state) |
4535 | return; | 4535 | return; |
4536 | check_write_done (connection, | 4536 | check_write_done (connection, |
4537 | MHD_CONNECTION_FOOTERS_SENT); | 4537 | MHD_CONNECTION_FULL_REPLY_SENT); |
4538 | return; | 4538 | return; |
4539 | case MHD_CONNECTION_FOOTERS_SENT: | 4539 | case MHD_CONNECTION_FULL_REPLY_SENT: |
4540 | mhd_assert (0); | 4540 | mhd_assert (0); |
4541 | return; | 4541 | return; |
4542 | case MHD_CONNECTION_CLOSED: | 4542 | case MHD_CONNECTION_CLOSED: |
@@ -5065,7 +5065,6 @@ MHD_connection_handle_idle (struct MHD_Connection *connection) | |||
5065 | /* no default action */ | 5065 | /* no default action */ |
5066 | break; | 5066 | break; |
5067 | case MHD_CONNECTION_HEADERS_SENT: | 5067 | case MHD_CONNECTION_HEADERS_SENT: |
5068 | /* Some clients may take some actions right after header receive */ | ||
5069 | #ifdef UPGRADE_SUPPORT | 5068 | #ifdef UPGRADE_SUPPORT |
5070 | if (NULL != connection->rp.response->upgrade_handler) | 5069 | if (NULL != connection->rp.response->upgrade_handler) |
5071 | { | 5070 | { |
@@ -5099,7 +5098,7 @@ MHD_connection_handle_idle (struct MHD_Connection *connection) | |||
5099 | connection->state = MHD_CONNECTION_NORMAL_BODY_UNREADY; | 5098 | connection->state = MHD_CONNECTION_NORMAL_BODY_UNREADY; |
5100 | } | 5099 | } |
5101 | else | 5100 | else |
5102 | connection->state = MHD_CONNECTION_FOOTERS_SENT; | 5101 | connection->state = MHD_CONNECTION_FULL_REPLY_SENT; |
5103 | continue; | 5102 | continue; |
5104 | case MHD_CONNECTION_NORMAL_BODY_READY: | 5103 | case MHD_CONNECTION_NORMAL_BODY_READY: |
5105 | /* nothing to do here */ | 5104 | /* nothing to do here */ |
@@ -5116,9 +5115,9 @@ MHD_connection_handle_idle (struct MHD_Connection *connection) | |||
5116 | MHD_mutex_unlock_chk_ (&connection->rp.response->mutex); | 5115 | MHD_mutex_unlock_chk_ (&connection->rp.response->mutex); |
5117 | #endif | 5116 | #endif |
5118 | if (connection->rp.props.chunked) | 5117 | if (connection->rp.props.chunked) |
5119 | connection->state = MHD_CONNECTION_BODY_SENT; | 5118 | connection->state = MHD_CONNECTION_CHUNKED_BODY_SENT; |
5120 | else | 5119 | else |
5121 | connection->state = MHD_CONNECTION_FOOTERS_SENT; | 5120 | connection->state = MHD_CONNECTION_FULL_REPLY_SENT; |
5122 | continue; | 5121 | continue; |
5123 | } | 5122 | } |
5124 | if (MHD_NO != try_ready_normal_body (connection)) | 5123 | if (MHD_NO != try_ready_normal_body (connection)) |
@@ -5151,7 +5150,7 @@ MHD_connection_handle_idle (struct MHD_Connection *connection) | |||
5151 | if (NULL != connection->rp.response->crc) | 5150 | if (NULL != connection->rp.response->crc) |
5152 | MHD_mutex_unlock_chk_ (&connection->rp.response->mutex); | 5151 | MHD_mutex_unlock_chk_ (&connection->rp.response->mutex); |
5153 | #endif | 5152 | #endif |
5154 | connection->state = MHD_CONNECTION_BODY_SENT; | 5153 | connection->state = MHD_CONNECTION_CHUNKED_BODY_SENT; |
5155 | continue; | 5154 | continue; |
5156 | } | 5155 | } |
5157 | if (1) | 5156 | if (1) |
@@ -5163,14 +5162,14 @@ MHD_connection_handle_idle (struct MHD_Connection *connection) | |||
5163 | if (NULL != connection->rp.response->crc) | 5162 | if (NULL != connection->rp.response->crc) |
5164 | MHD_mutex_unlock_chk_ (&connection->rp.response->mutex); | 5163 | MHD_mutex_unlock_chk_ (&connection->rp.response->mutex); |
5165 | #endif | 5164 | #endif |
5166 | connection->state = finished ? MHD_CONNECTION_BODY_SENT : | 5165 | connection->state = finished ? MHD_CONNECTION_CHUNKED_BODY_SENT : |
5167 | MHD_CONNECTION_CHUNKED_BODY_READY; | 5166 | MHD_CONNECTION_CHUNKED_BODY_READY; |
5168 | continue; | 5167 | continue; |
5169 | } | 5168 | } |
5170 | /* mutex was already unlocked by try_ready_chunked_body */ | 5169 | /* mutex was already unlocked by try_ready_chunked_body */ |
5171 | } | 5170 | } |
5172 | break; | 5171 | break; |
5173 | case MHD_CONNECTION_BODY_SENT: | 5172 | case MHD_CONNECTION_CHUNKED_BODY_SENT: |
5174 | mhd_assert (connection->rp.props.chunked); | 5173 | mhd_assert (connection->rp.props.chunked); |
5175 | 5174 | ||
5176 | if (MHD_NO == build_connection_chunked_response_footer (connection)) | 5175 | if (MHD_NO == build_connection_chunked_response_footer (connection)) |
@@ -5185,14 +5184,14 @@ MHD_connection_handle_idle (struct MHD_Connection *connection) | |||
5185 | if ( (! connection->rp.props.chunked) || | 5184 | if ( (! connection->rp.props.chunked) || |
5186 | (connection->write_buffer_send_offset == | 5185 | (connection->write_buffer_send_offset == |
5187 | connection->write_buffer_append_offset) ) | 5186 | connection->write_buffer_append_offset) ) |
5188 | connection->state = MHD_CONNECTION_FOOTERS_SENT; | 5187 | connection->state = MHD_CONNECTION_FULL_REPLY_SENT; |
5189 | else | 5188 | else |
5190 | connection->state = MHD_CONNECTION_FOOTERS_SENDING; | 5189 | connection->state = MHD_CONNECTION_FOOTERS_SENDING; |
5191 | continue; | 5190 | continue; |
5192 | case MHD_CONNECTION_FOOTERS_SENDING: | 5191 | case MHD_CONNECTION_FOOTERS_SENDING: |
5193 | /* no default action */ | 5192 | /* no default action */ |
5194 | break; | 5193 | break; |
5195 | case MHD_CONNECTION_FOOTERS_SENT: | 5194 | case MHD_CONNECTION_FULL_REPLY_SENT: |
5196 | if (MHD_HTTP_PROCESSING == connection->rp.responseCode) | 5195 | if (MHD_HTTP_PROCESSING == connection->rp.responseCode) |
5197 | { | 5196 | { |
5198 | /* After this type of response, we allow sending another! */ | 5197 | /* After this type of response, we allow sending another! */ |