Blame modules/http2/h2_from_h1.h

Packit 90a5c9
/* Licensed to the Apache Software Foundation (ASF) under one or more
Packit 90a5c9
 * contributor license agreements.  See the NOTICE file distributed with
Packit 90a5c9
 * this work for additional information regarding copyright ownership.
Packit 90a5c9
 * The ASF licenses this file to You under the Apache License, Version 2.0
Packit 90a5c9
 * (the "License"); you may not use this file except in compliance with
Packit 90a5c9
 * the License.  You may obtain a copy of the License at
Packit 90a5c9
 *
Packit 90a5c9
 *     http://www.apache.org/licenses/LICENSE-2.0
Packit 90a5c9
 *
Packit 90a5c9
 * Unless required by applicable law or agreed to in writing, software
Packit 90a5c9
 * distributed under the License is distributed on an "AS IS" BASIS,
Packit 90a5c9
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Packit 90a5c9
 * See the License for the specific language governing permissions and
Packit 90a5c9
 * limitations under the License.
Packit 90a5c9
 */
Packit 90a5c9
Packit 90a5c9
#ifndef __mod_h2__h2_from_h1__
Packit 90a5c9
#define __mod_h2__h2_from_h1__
Packit 90a5c9
Packit 90a5c9
/**
Packit 90a5c9
 * h2_from_h1 parses a HTTP/1.1 response into
Packit 90a5c9
 * - response status
Packit 90a5c9
 * - a list of header values
Packit 90a5c9
 * - a series of bytes that represent the response body alone, without
Packit 90a5c9
 *   any meta data, such as inserted by chunked transfer encoding.
Packit 90a5c9
 *
Packit 90a5c9
 * All data is allocated from the stream memory pool. 
Packit 90a5c9
 *
Packit 90a5c9
 * Again, see comments in h2_request: ideally we would take the headers
Packit 90a5c9
 * and status from the httpd structures instead of parsing them here, but
Packit 90a5c9
 * we need to have all handlers and filters involved in request/response
Packit 90a5c9
 * processing, so this seems to be the way for now.
Packit 90a5c9
 */
Packit 90a5c9
struct h2_headers;
Packit 90a5c9
struct h2_task;
Packit 90a5c9
Packit 90a5c9
apr_status_t h2_from_h1_parse_response(struct h2_task *task, ap_filter_t *f, 
Packit 90a5c9
                                       apr_bucket_brigade *bb);
Packit 90a5c9
Packit 90a5c9
apr_status_t h2_filter_headers_out(ap_filter_t *f, apr_bucket_brigade *bb);
Packit 90a5c9
Packit 90a5c9
apr_status_t h2_filter_request_in(ap_filter_t* f,
Packit 90a5c9
                                  apr_bucket_brigade* brigade,
Packit 90a5c9
                                  ap_input_mode_t mode,
Packit 90a5c9
                                  apr_read_type_e block,
Packit 90a5c9
                                  apr_off_t readbytes);
Packit 90a5c9
Packit 90a5c9
apr_status_t h2_filter_trailers_out(ap_filter_t *f, apr_bucket_brigade *bb);
Packit 90a5c9
Packit 90a5c9
#endif /* defined(__mod_h2__h2_from_h1__) */