diff options
author | Christian Grothoff <christian@grothoff.org> | 2016-06-10 00:23:30 +0000 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2016-06-10 00:23:30 +0000 |
commit | 9bba474f7ba716ec546cc9740148562447f7d267 (patch) | |
tree | 72cb8a5a9094e84f0efc4df4abf208c28eb1f714 | |
parent | 69b9aa6513f6a0a83e2216f4caea586296ccb905 (diff) | |
download | libmicrohttpd-9bba474f7ba716ec546cc9740148562447f7d267.tar.gz libmicrohttpd-9bba474f7ba716ec546cc9740148562447f7d267.zip |
-do not call callback if connection was already suspended
-rw-r--r-- | src/microhttpd/connection.c | 10 |
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; |