]> granicus.if.org Git - apache/blob - modules/http2/h2_h2.h
merged latest changes in 2.4.x
[apache] / modules / http2 / h2_h2.h
1 /* Copyright 2015 greenbytes GmbH (https://www.greenbytes.de)
2  *
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  * http://www.apache.org/licenses/LICENSE-2.0
8  
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15
16 #ifndef __mod_h2__h2_h2__
17 #define __mod_h2__h2_h2__
18
19 /**
20  * List of ALPN protocol identifiers that we suport in cleartext
21  * negotiations. NULL terminated.
22  */
23 extern const char *h2_clear_protos[];
24
25 /**
26  * List of ALPN protocol identifiers that we support in TLS encrypted 
27  * negotiations. NULL terminated.
28  */
29 extern const char *h2_tls_protos[];
30
31 /**
32  * The magic PRIamble of RFC 7540 that is always sent when starting
33  * a h2 communication.
34  */
35 extern const char *H2_MAGIC_TOKEN;
36
37 /*
38  * One time, post config intialization.
39  */
40 apr_status_t h2_h2_init(apr_pool_t *pool, server_rec *s);
41
42 /* Is the connection a TLS connection?
43  */
44 int h2_h2_is_tls(conn_rec *c);
45
46 /* Disable SSL for this connection, can only be invoked in a pre-
47  * connection hook before mod_ssl.
48  * @return != 0 iff disable worked
49  */
50 int h2_tls_disable(conn_rec *c);
51
52 /* Register apache hooks for h2 protocol
53  */
54 void h2_h2_register_hooks(void);
55
56
57 #endif /* defined(__mod_h2__h2_h2__) */