View | Details | Raw Unified | Return to bug 63534
Collapse All | Expand All

(-)CHANGES (+5 lines)
Lines 1-6 Link Here
1
                                                         -*- coding: utf-8 -*-
1
                                                         -*- coding: utf-8 -*-
2
Changes with Apache 2.4.40
2
Changes with Apache 2.4.40
3
3
4
  *) mod_http2/mpm_event: Fixes the behaviour when a HTTP/2 connection has nothing
5
     more to write with streams ongoing (flow control block). The timeout waiting
6
     for the client to send WINODW_UPDATE was incorrectly KeepAliveTimeout and not
7
     Timeout as it should be. Fixes PR 63534. [Yann Ylavic, Stefan Eissing]
8
4
  *) mod_proxy_http2: fixing a potential NULL pointer use in logging.
9
  *) mod_proxy_http2: fixing a potential NULL pointer use in logging.
5
     [Christophe Jaillet <christophe.jaillet wanadoo.fr>, Dr Silvio Cesare InfoSect]
10
     [Christophe Jaillet <christophe.jaillet wanadoo.fr>, Dr Silvio Cesare InfoSect]
6
11
(-)modules/http2/h2_conn.c (+7 lines)
Lines 231-236 Link Here
231
            case H2_SESSION_ST_BUSY:
231
            case H2_SESSION_ST_BUSY:
232
            case H2_SESSION_ST_WAIT:
232
            case H2_SESSION_ST_WAIT:
233
                c->cs->state = CONN_STATE_WRITE_COMPLETION;
233
                c->cs->state = CONN_STATE_WRITE_COMPLETION;
234
                if (c->cs && (session->open_streams || !session->remote.emitted_count)) {
235
                    /* let the MPM know that we are not done and want
236
                     * the Timeout behaviour instead of a KeepAliveTimeout
237
                     * See PR 63534. 
238
                     */
239
                    c->cs->sense = CONN_SENSE_WANT_READ;
240
                }
234
                break;
241
                break;
235
            case H2_SESSION_ST_CLEANUP:
242
            case H2_SESSION_ST_CLEANUP:
236
            case H2_SESSION_ST_DONE:
243
            case H2_SESSION_ST_DONE:
(-)server/mpm/event/event.c (-3 / +4 lines)
Lines 1113-1122 Link Here
1113
                          "network write failure in core output filter");
1113
                          "network write failure in core output filter");
1114
            cs->pub.state = CONN_STATE_LINGER;
1114
            cs->pub.state = CONN_STATE_LINGER;
1115
        }
1115
        }
1116
        else if (c->data_in_output_filters) {
1116
        else if (c->data_in_output_filters 
1117
            || cs->pub.sense == CONN_SENSE_WANT_READ) {
1117
            /* Still in WRITE_COMPLETION_STATE:
1118
            /* Still in WRITE_COMPLETION_STATE:
1118
             * Set a write timeout for this connection, and let the
1119
             * Set a read/write timeout for this connection, and let the
1119
             * event thread poll for writeability.
1120
             * event thread poll for read/writeability.
1120
             */
1121
             */
1121
            cs->queue_timestamp = apr_time_now();
1122
            cs->queue_timestamp = apr_time_now();
1122
            notify_suspend(cs);
1123
            notify_suspend(cs);

Return to bug 63534