aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2016-06-10 00:23:30 +0000
committerChristian Grothoff <christian@grothoff.org>2016-06-10 00:23:30 +0000
commit9bba474f7ba716ec546cc9740148562447f7d267 (patch)
tree72cb8a5a9094e84f0efc4df4abf208c28eb1f714
parent69b9aa6513f6a0a83e2216f4caea586296ccb905 (diff)
downloadlibmicrohttpd-9bba474f7ba716ec546cc9740148562447f7d267.tar.gz
libmicrohttpd-9bba474f7ba716ec546cc9740148562447f7d267.zip
-do not call callback if connection was already suspended
-rw-r--r--src/microhttpd/connection.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/microhttpd/connection.c b/src/microhttpd/connection.c
index 5c103d27..a94a1ca6 100644
--- a/src/microhttpd/connection.c
+++ b/src/microhttpd/connection.c
@@ -2542,6 +2542,8 @@ MHD_connection_handle_idle (struct MHD_Connection *connection)
2542 if (MHD_CONNECTION_CLOSED == connection->state) 2542 if (MHD_CONNECTION_CLOSED == connection->state)
2543 continue; 2543 continue;
2544 connection->state = MHD_CONNECTION_HEADERS_PROCESSED; 2544 connection->state = MHD_CONNECTION_HEADERS_PROCESSED;
2545 if (MHD_YES == connection->suspended)
2546 break;
2545 continue; 2547 continue;
2546 case MHD_CONNECTION_HEADERS_PROCESSED: 2548 case MHD_CONNECTION_HEADERS_PROCESSED:
2547 call_connection_handler (connection); /* first call */ 2549 call_connection_handler (connection); /* first call */
@@ -2570,6 +2572,8 @@ MHD_connection_handle_idle (struct MHD_Connection *connection)
2570 } 2572 }
2571 connection->state = (0 == connection->remaining_upload_size) 2573 connection->state = (0 == connection->remaining_upload_size)
2572 ? MHD_CONNECTION_FOOTERS_RECEIVED : MHD_CONNECTION_CONTINUE_SENT; 2574 ? MHD_CONNECTION_FOOTERS_RECEIVED : MHD_CONNECTION_CONTINUE_SENT;
2575 if (MHD_YES == connection->suspended)
2576 break;
2573 continue; 2577 continue;
2574 case MHD_CONNECTION_CONTINUE_SENDING: 2578 case MHD_CONNECTION_CONTINUE_SENDING:
2575 if (connection->continue_message_write_offset == 2579 if (connection->continue_message_write_offset ==
@@ -2601,6 +2605,8 @@ MHD_connection_handle_idle (struct MHD_Connection *connection)
2601 connection->state = MHD_CONNECTION_BODY_RECEIVED; 2605 connection->state = MHD_CONNECTION_BODY_RECEIVED;
2602 else 2606 else
2603 connection->state = MHD_CONNECTION_FOOTERS_RECEIVED; 2607 connection->state = MHD_CONNECTION_FOOTERS_RECEIVED;
2608 if (MHD_YES == connection->suspended)
2609 break;
2604 continue; 2610 continue;
2605 } 2611 }
2606 break; 2612 break;
@@ -2621,6 +2627,8 @@ MHD_connection_handle_idle (struct MHD_Connection *connection)
2621 if (0 == line[0]) 2627 if (0 == line[0])
2622 { 2628 {
2623 connection->state = MHD_CONNECTION_FOOTERS_RECEIVED; 2629 connection->state = MHD_CONNECTION_FOOTERS_RECEIVED;
2630 if (MHD_YES == connection->suspended)
2631 break;
2624 continue; 2632 continue;
2625 } 2633 }
2626 if (MHD_NO == process_header_line (connection, line)) 2634 if (MHD_NO == process_header_line (connection, line))
@@ -2652,6 +2660,8 @@ MHD_connection_handle_idle (struct MHD_Connection *connection)
2652 if (0 == line[0]) 2660 if (0 == line[0])
2653 { 2661 {
2654 connection->state = MHD_CONNECTION_FOOTERS_RECEIVED; 2662 connection->state = MHD_CONNECTION_FOOTERS_RECEIVED;
2663 if (MHD_YES == connection->suspended)
2664 break;
2655 continue; 2665 continue;
2656 } 2666 }
2657 continue; 2667 continue;