Beispiel #1
0
apr_status_t h2_session_close(h2_session *session)
{
    AP_DEBUG_ASSERT(session);
    if (!session->aborted) {
        h2_session_abort_int(session, 0);
    }
    ap_log_cerror(APLOG_MARK, APLOG_DEBUG, 0,session->c,
                  "h2_session: closing, writing eoc");
    h2_conn_io_writeb(&session->io,
                      h2_bucket_eoc_create(session->c->bucket_alloc, 
                                           session));
    return h2_conn_io_flush(&session->io);
}
Beispiel #2
0
apr_status_t h2_conn_io_close(h2_conn_io *io, void *session)
{
    apr_bucket *b;

    /* Send out anything in our buffers */
    h2_conn_io_flush_int(io, 0);
    
    b = h2_bucket_eoc_create(io->connection->bucket_alloc, session);
    APR_BRIGADE_INSERT_TAIL(io->output, b);
    b = apr_bucket_flush_create(io->connection->bucket_alloc);
    APR_BRIGADE_INSERT_TAIL(io->output, b);
    return ap_pass_brigade(io->connection->output_filters, io->output);
    /* and all is gone */
}