]> git.ipfire.org Git - thirdparty/apache/httpd.git/commitdiff
some connection state tweaks to appease event mpm
authorStefan Eissing <icing@apache.org>
Mon, 9 Nov 2015 14:34:13 +0000 (14:34 +0000)
committerStefan Eissing <icing@apache.org>
Mon, 9 Nov 2015 14:34:13 +0000 (14:34 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1713442 13f79535-47bb-0310-9956-ffa450edef68

modules/http2/h2_session.c
modules/http2/h2_task.c

index 710960c62d7d66d4cd50e3f5c8a37166070996cc..1ccfaa26ade20ac1d25b43ddcb551fbbd78409fe 100644 (file)
@@ -1373,8 +1373,10 @@ apr_status_t h2_session_process(h2_session *session)
             }
             
             if (may_block) {
+                h2_session_flush(session);
                 if (session->c->cs) {
-                    session->c->cs->state = CONN_STATE_WRITE_COMPLETION;
+                    session->c->cs->state = (got_streams? CONN_STATE_HANDLER
+                                             : CONN_STATE_WRITE_COMPLETION);
                 }
                 status = h2_conn_io_read(&session->io, APR_BLOCK_READ, 
                                          session_receive, session);
index c44d3827d4743e66e482920518ad17ef0d75cf01..1d95496d2d19d7031e2dbb15c8b6afa96e665395 100644 (file)
@@ -397,6 +397,8 @@ static apr_status_t h2_task_process_request(h2_task *task)
          * will result in a segfault immediately instead
          * of nondeterministic failures later.
          */
+        if (cs)
+            cs->state = CONN_STATE_WRITE_COMPLETION;
         r = NULL;
     }
     ap_update_child_status(c->sbh, SERVER_BUSY_WRITE, NULL);