1/* Licensed to the Apache Software Foundation (ASF) under one or more
2 * contributor license agreements.  See the NOTICE file distributed with
3 * this work for additional information regarding copyright ownership.
4 * The ASF licenses this file to You under the Apache License, Version 2.0
5 * (the "License"); you may not use this file except in compliance with
6 * the License.  You may obtain a copy of the License at
7 *
8 *     http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17/**
18 * @file ajp_header.h
19 * @brief AJP defines
20 *
21 * @addtogroup AJP_defines
22 * @{
23 */
24
25#ifndef AJP_HEADER_H
26#define AJP_HEADER_H
27
28/*
29 * Conditional request attributes
30 *
31 */
32#define SC_A_CONTEXT            (unsigned char)1
33#define SC_A_SERVLET_PATH       (unsigned char)2
34#define SC_A_REMOTE_USER        (unsigned char)3
35#define SC_A_AUTH_TYPE          (unsigned char)4
36#define SC_A_QUERY_STRING       (unsigned char)5
37#define SC_A_JVM_ROUTE          (unsigned char)6
38#define SC_A_SSL_CERT           (unsigned char)7
39#define SC_A_SSL_CIPHER         (unsigned char)8
40#define SC_A_SSL_SESSION        (unsigned char)9
41#define SC_A_REQ_ATTRIBUTE      (unsigned char)10
42#define SC_A_SSL_KEY_SIZE       (unsigned char)11       /* only in if JkOptions +ForwardKeySize */
43#define SC_A_SECRET             (unsigned char)12
44#define SC_A_STORED_METHOD      (unsigned char)13
45#define SC_A_ARE_DONE           (unsigned char)0xFF
46
47/*
48 * AJP private request attributes
49 *
50 * The following request attribute is recognized by Tomcat
51 * to contain the forwarded remote port.
52 */
53#define SC_A_REQ_REMOTE_PORT    ("AJP_REMOTE_PORT")
54
55/*
56 * Request methods, coded as numbers instead of strings.
57 * The list of methods was taken from Section 5.1.1 of RFC 2616,
58 * RFC 2518, the ACL IETF draft, and the DeltaV IESG Proposed Standard.
59 *          Method        = "OPTIONS"
60 *                        | "GET"
61 *                        | "HEAD"
62 *                        | "POST"
63 *                        | "PUT"
64 *                        | "DELETE"
65 *                        | "TRACE"
66 *                        | "PROPFIND"
67 *                        | "PROPPATCH"
68 *                        | "MKCOL"
69 *                        | "COPY"
70 *                        | "MOVE"
71 *                        | "LOCK"
72 *                        | "UNLOCK"
73 *                        | "ACL"
74 *                        | "REPORT"
75 *                        | "VERSION-CONTROL"
76 *                        | "CHECKIN"
77 *                        | "CHECKOUT"
78 *                        | "UNCHECKOUT"
79 *                        | "SEARCH"
80 *                        | "MKWORKSPACE"
81 *                        | "UPDATE"
82 *                        | "LABEL"
83 *                        | "MERGE"
84 *                        | "BASELINE-CONTROL"
85 *                        | "MKACTIVITY"
86 *
87 */
88#define SC_M_OPTIONS            (unsigned char)1
89#define SC_M_GET                (unsigned char)2
90#define SC_M_HEAD               (unsigned char)3
91#define SC_M_POST               (unsigned char)4
92#define SC_M_PUT                (unsigned char)5
93#define SC_M_DELETE             (unsigned char)6
94#define SC_M_TRACE              (unsigned char)7
95#define SC_M_PROPFIND           (unsigned char)8
96#define SC_M_PROPPATCH          (unsigned char)9
97#define SC_M_MKCOL              (unsigned char)10
98#define SC_M_COPY               (unsigned char)11
99#define SC_M_MOVE               (unsigned char)12
100#define SC_M_LOCK               (unsigned char)13
101#define SC_M_UNLOCK             (unsigned char)14
102#define SC_M_ACL                (unsigned char)15
103#define SC_M_REPORT             (unsigned char)16
104#define SC_M_VERSION_CONTROL    (unsigned char)17
105#define SC_M_CHECKIN            (unsigned char)18
106#define SC_M_CHECKOUT           (unsigned char)19
107#define SC_M_UNCHECKOUT         (unsigned char)20
108#define SC_M_SEARCH             (unsigned char)21
109#define SC_M_MKWORKSPACE        (unsigned char)22
110#define SC_M_UPDATE             (unsigned char)23
111#define SC_M_LABEL              (unsigned char)24
112#define SC_M_MERGE              (unsigned char)25
113#define SC_M_BASELINE_CONTROL   (unsigned char)26
114#define SC_M_MKACTIVITY         (unsigned char)27
115#define SC_M_JK_STORED          (unsigned char)0xFF
116
117
118/*
119 * Frequent request headers, these headers are coded as numbers
120 * instead of strings.
121 *
122 * Accept
123 * Accept-Charset
124 * Accept-Encoding
125 * Accept-Language
126 * Authorization
127 * Connection
128 * Content-Type
129 * Content-Length
130 * Cookie
131 * Cookie2
132 * Host
133 * Pragma
134 * Referer
135 * User-Agent
136 *
137 */
138
139#define SC_ACCEPT               (unsigned short)0xA001
140#define SC_ACCEPT_CHARSET       (unsigned short)0xA002
141#define SC_ACCEPT_ENCODING      (unsigned short)0xA003
142#define SC_ACCEPT_LANGUAGE      (unsigned short)0xA004
143#define SC_AUTHORIZATION        (unsigned short)0xA005
144#define SC_CONNECTION           (unsigned short)0xA006
145#define SC_CONTENT_TYPE         (unsigned short)0xA007
146#define SC_CONTENT_LENGTH       (unsigned short)0xA008
147#define SC_COOKIE               (unsigned short)0xA009
148#define SC_COOKIE2              (unsigned short)0xA00A
149#define SC_HOST                 (unsigned short)0xA00B
150#define SC_PRAGMA               (unsigned short)0xA00C
151#define SC_REFERER              (unsigned short)0xA00D
152#define SC_USER_AGENT           (unsigned short)0xA00E
153
154/*
155 * Frequent response headers, these headers are coded as numbers
156 * instead of strings.
157 *
158 * Content-Type
159 * Content-Language
160 * Content-Length
161 * Date
162 * Last-Modified
163 * Location
164 * Set-Cookie
165 * Servlet-Engine
166 * Status
167 * WWW-Authenticate
168 *
169 */
170
171#define SC_RESP_CONTENT_TYPE        (unsigned short)0xA001
172#define SC_RESP_CONTENT_LANGUAGE    (unsigned short)0xA002
173#define SC_RESP_CONTENT_LENGTH      (unsigned short)0xA003
174#define SC_RESP_DATE                (unsigned short)0xA004
175#define SC_RESP_LAST_MODIFIED       (unsigned short)0xA005
176#define SC_RESP_LOCATION            (unsigned short)0xA006
177#define SC_RESP_SET_COOKIE          (unsigned short)0xA007
178#define SC_RESP_SET_COOKIE2         (unsigned short)0xA008
179#define SC_RESP_SERVLET_ENGINE      (unsigned short)0xA009
180#define SC_RESP_STATUS              (unsigned short)0xA00A
181#define SC_RESP_WWW_AUTHENTICATE    (unsigned short)0xA00B
182#define SC_RES_HEADERS_NUM          11
183
184#endif /* AJP_HEADER_H */
185/** @} */
186