|
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__) */
|