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

(-)modules/http/http_protocol.c (+11 lines)
Lines 174-179 Link Here
174
                              "close");
174
                              "close");
175
    const char *conn = apr_table_get(r->headers_in, "Connection");
175
    const char *conn = apr_table_get(r->headers_in, "Connection");
176
176
177
    /* PR47087: If the client sent Expect: 100 and we didn't reply
178
     * with the same, there may be more data we screw up.
179
     * Closing the connection fixes that.  Furthermore, when we're
180
     * sending an error or redirection, closing it is likely to be
181
     * the most efficient thing to do too.
182
     *
183
     * Yes this logic could go in the big if, but let's KISS instead.
184
     */
185
    if (r->expecting_100 && (r->status != HTTP_CONTINUE)) {
186
        r->connection->keepalive = AP_CONN_CLOSE;
187
    }
177
    /* The following convoluted conditional determines whether or not
188
    /* The following convoluted conditional determines whether or not
178
     * the current connection should remain persistent after this response
189
     * the current connection should remain persistent after this response
179
     * (a.k.a. HTTP Keep-Alive) and whether or not the output message
190
     * (a.k.a. HTTP Keep-Alive) and whether or not the output message

Return to bug 47087