aboutsummaryrefslogtreecommitdiff
path: root/src/microhttpd
diff options
context:
space:
mode:
Diffstat (limited to 'src/microhttpd')
-rw-r--r--src/microhttpd/connection.c2
-rw-r--r--src/microhttpd/response.c38
-rw-r--r--src/microhttpd/test_upgrade.c2
3 files changed, 41 insertions, 1 deletions
diff --git a/src/microhttpd/connection.c b/src/microhttpd/connection.c
index 67ff6017..c2add01a 100644
--- a/src/microhttpd/connection.c
+++ b/src/microhttpd/connection.c
@@ -3181,7 +3181,7 @@ MHD_connection_handle_write (struct MHD_Connection *connection)
3181 return; 3181 return;
3182 case MHD_CONNECTION_HEADERS_SENDING: 3182 case MHD_CONNECTION_HEADERS_SENDING:
3183 { 3183 {
3184 const size_t wb_ready =connection->write_buffer_append_offset - 3184 const size_t wb_ready = connection->write_buffer_append_offset -
3185 connection->write_buffer_send_offset; 3185 connection->write_buffer_send_offset;
3186 3186
3187 /* if the response body is not available, we use MHD_send_on_connection_() */ 3187 /* if the response body is not available, we use MHD_send_on_connection_() */
diff --git a/src/microhttpd/response.c b/src/microhttpd/response.c
index 7b98a45c..65ea7b09 100644
--- a/src/microhttpd/response.c
+++ b/src/microhttpd/response.c
@@ -825,6 +825,44 @@ MHD_upgrade_action (struct MHD_UpgradeResponseHandle *urh,
825 * be moved to cleanup list by MHD_resume_connection(). */ 825 * be moved to cleanup list by MHD_resume_connection(). */
826 MHD_resume_connection (connection); 826 MHD_resume_connection (connection);
827 return MHD_YES; 827 return MHD_YES;
828 case MHD_UPGRADE_ACTION_CORK_ON:
829 if (connection->sk_cork_on)
830 return MHD_YES;
831#ifdef HTTPS_SUPPORT
832 if (0 != (daemon->options & MHD_USE_TLS) )
833 {
834 gnutls_record_cork (connection->tls_session);
835 connection->sk_cork_on = true;
836 return MHD_YES;
837 }
838 else
839#else
840 {
841 if (0 ==
842 MHD_socket_cork_ (connection->socket_fd,
843 true))
844 connection->sk_cork_on = true;
845 }
846#endif
847 case MHD_UPGRADE_ACTION_CORK_OFF:
848 if (! connection->sk_cork_on)
849 return MHD_YES;
850#ifdef HTTPS_SUPPORT
851 if (0 != (daemon->options & MHD_USE_TLS) )
852 {
853 gnutls_record_uncork (connection->tls_session, 0);
854 connection->sk_cork_on = false;
855 return MHD_YES;
856 }
857 else
858#else
859 {
860 if (0 ==
861 MHD_socket_cork_ (connection->socket_fd,
862 false))
863 connection->sk_cork_on = false;
864 }
865#endif
828 default: 866 default:
829 /* we don't understand this one */ 867 /* we don't understand this one */
830 return MHD_NO; 868 return MHD_NO;
diff --git a/src/microhttpd/test_upgrade.c b/src/microhttpd/test_upgrade.c
index caf12e61..9135187c 100644
--- a/src/microhttpd/test_upgrade.c
+++ b/src/microhttpd/test_upgrade.c
@@ -685,6 +685,8 @@ run_usock (void *cls)
685{ 685{
686 struct MHD_UpgradeResponseHandle *urh = cls; 686 struct MHD_UpgradeResponseHandle *urh = cls;
687 687
688 MHD_upgrade_action (urh,
689 MHD_UPGRADE_ACTION_CORK_OFF);
688 send_all (usock, 690 send_all (usock,
689 "Hello"); 691 "Hello");
690 recv_all (usock, 692 recv_all (usock,