static void init_request(struct st_h2o_http1_conn_t *conn, int reinit) { if (reinit) h2o_dispose_request(&conn->req); h2o_init_request(&conn->req, &conn->super, NULL); ++conn->_req_index; conn->req._ostr_top = &conn->_ostr_final.super; conn->_ostr_final.super.do_send = finalostream_send; conn->_ostr_final.super.start_pull = finalostream_start_pull; conn->_ostr_final.sent_headers = 0; }
void h2o_http2_stream_close(h2o_http2_conn_t *conn, h2o_http2_stream_t *stream) { h2o_http2_conn_unregister_stream(conn, stream); if (stream->_req_body != NULL) h2o_buffer_dispose(&stream->_req_body); if (stream->cache_digests != NULL) h2o_cache_digests_destroy(stream->cache_digests); h2o_dispose_request(&stream->req); if (stream->stream_id == 1 && conn->_http1_req_input != NULL) h2o_buffer_dispose(&conn->_http1_req_input); free(stream); }
void h2o_http2_stream_close(h2o_http2_conn_t *conn, h2o_http2_stream_t *stream) { h2o_http2_conn_unregister_stream(conn, stream); --*stream->_num_streams_open_slot; if (stream->_req_headers != NULL) h2o_buffer_dispose(&stream->_req_headers); if (stream->_req_body != NULL) h2o_buffer_dispose(&stream->_req_body); h2o_dispose_request(&stream->req); if (stream->stream_id == 1 && conn->_http1_req_input != NULL) h2o_buffer_dispose(&conn->_http1_req_input); free(stream); }