varnish-cache/include/tbl/http_headers.h
1
/*-
2
 * Copyright (c) 2006 Verdens Gang AS
3
 * Copyright (c) 2006-2010 Varnish Software AS
4
 * All rights reserved.
5
 *
6
 * Author: Poul-Henning Kamp <phk@phk.freebsd.dk>
7
 *
8
 * Redistribution and use in source and binary forms, with or without
9
 * modification, are permitted provided that the following conditions
10
 * are met:
11
 * 1. Redistributions of source code must retain the above copyright
12
 *    notice, this list of conditions and the following disclaimer.
13
 * 2. Redistributions in binary form must reproduce the above copyright
14
 *    notice, this list of conditions and the following disclaimer in the
15
 *    documentation and/or other materials provided with the distribution.
16
 *
17
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
18
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
 * ARE DISCLAIMED.  IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE
21
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27
 * SUCH DAMAGE.
28
 *
29
 * Argument list:
30
 * ---------------------------------------
31
 * a    Http header name
32
 * b    enum name
33
 * c    Supress header in filter ops
34
 *
35
 * see [RFC2616 13.5.1 End-to-end and Hop-by-hop Headers]
36
 *
37
 */
38
39
/*lint -save -e525 -e539 */
40
41
/* Shorthand for this file only, to keep table narrow */
42
43
#if defined(P) || defined(F) || defined(I) || defined(H) || defined(S)
44
#error "Macro overloading"  // Trust but verify
45
#endif
46
47
#define P HTTPH_R_PASS
48
#define F HTTPH_R_FETCH
49
#define I HTTPH_A_INS
50
#define S HTTPH_A_PASS
51
#define H(s,e,f) HTTPH(s, e, f)
52
53 34879
H("Keep-Alive",         H_Keep_Alive,           P|F  |S)        // 2068
54 1400
H("Accept",             H_Accept,               0      )        // 2616 14.1
55 1400
H("Accept-Charset",     H_Accept_Charset,       0      )        // 2616 14.2
56 1400
H("Accept-Encoding",    H_Accept_Encoding,      0      )        // 2616 14.3
57 1400
H("Accept-Language",    H_Accept_Language,      0      )        // 2616 14.4
58 34883
H("Accept-Ranges",      H_Accept_Ranges,        P|F|I  )        // 2616 14.5
59 35035
H("Age",                H_Age,                      I|S)        // 2616 14.6
60 1398
H("Allow",              H_Allow,                0      )        // 2616 14.7
61 1398
H("Authorization",      H_Authorization,        0      )        // 2616 14.8
62 34996
H("Cache-Control",      H_Cache_Control,          F    )        // 2616 14.9
63 34824
H("Connection",         H_Connection,           P|F|I|S)        // 2616 14.10
64 1398
H("Content-Encoding",   H_Content_Encoding,     0      )        // 2616 14.11
65 1398
H("Content-Language",   H_Content_Language,     0      )        // 2616 14.12
66 1398
H("Content-Length",     H_Content_Length,       0      )        // 2616 14.13
67 1398
H("Content-Location",   H_Content_Location,     0      )        // 2616 14.14
68 1398
H("Content-MD5",        H_Content_MD5,          0      )        // 2616 14.15
69 34723
H("Content-Range",      H_Content_Range,          F|I  )        // 2616 14.16
70 1398
H("Content-Type",       H_Content_Type,         0      )        // 2616 14.17
71 1398
H("Cookie",             H_Cookie,               0      )        // 6265 4.2
72 1398
H("Date",               H_Date,                 0      )        // 2616 14.18
73 1398
H("ETag",               H_ETag,                 0      )        // 2616 14.19
74 1398
H("Expect",             H_Expect,               0      )        // 2616 14.20
75 1398
H("Expires",            H_Expires,              0      )        // 2616 14.21
76 1398
H("From",               H_From,                 0      )        // 2616 14.22
77 1398
H("Host",               H_Host,                 0      )        // 2616 14.23
78 34553
H("HTTP2-Settings",     H_HTTP2_Settings,       P|F|I|S)        // 7540 3.2.1
79 34722
H("If-Match",           H_If_Match,               F    )        // 2616 14.24
80 34722
H("If-Modified-Since",  H_If_Modified_Since,      F    )        // 2616 14.25
81 34714
H("If-None-Match",      H_If_None_Match,          F    )        // 2616 14.26
82 34702
H("If-Range",           H_If_Range,               F    )        // 2616 14.27
83 34702
H("If-Unmodified-Since",H_If_Unmodified_Since,    F    )        // 2616 14.28
84 1398
H("Last-Modified",      H_Last_Modified,        0      )        // 2616 14.29
85 1398
H("Location",           H_Location,             0      )        // 2616 14.30
86 1398
H("Max-Forwards",       H_Max_Forwards,         0      )        // 2616 14.31
87 1398
H("Pragma",             H_Pragma,               0      )        // 2616 14.32
88 34702
H("Proxy-Authenticate", H_Proxy_Authenticate,     F|I  )        // 2616 14.33
89 34702
H("Proxy-Authorization",H_Proxy_Authorization,    F|I  )        // 2616 14.34
90 34702
H("Range",              H_Range,                  F|I  )        // 2616 14.35
91 1398
H("Referer",            H_Referer,              0      )        // 2616 14.36
92 1398
H("Retry-After",        H_Retry_After,          0      )        // 2616 14.37
93 1398
H("Server",             H_Server,               0      )        // 2616 14.38
94 1398
H("Set-Cookie",         H_Set_Cookie,           0      )        // 6265 4.1
95 34512
H("TE",                 H_TE,                   P|F|I|S)        // 2616 14.39
96 34519
H("Trailer",            H_Trailer,              P|F|I|S)        // 2616 14.40
97 34515
H("Transfer-Encoding",  H_Transfer_Encoding,    P|F|I|S)        // 2616 14.41
98 34349
H("Upgrade",            H_Upgrade,              P|F|I|S)        // 2616 14.42
99 1398
H("User-Agent",         H_User_Agent,           0      )        // 2616 14.43
100 1398
H("Vary",               H_Vary,                 0      )        // 2616 14.44
101 1398
H("Via",                H_Via,                  0      )        // 2616 14.45
102 1398
H("Warning",            H_Warning,              0      )        // 2616 14.46
103 1398
H("WWW-Authenticate",   H_WWW_Authenticate,     0      )        // 2616 14.47
104 1398
H("X-Forwarded-For",    H_X_Forwarded_For,      0      )        // No RFC
105
106
#undef P
107
#undef F
108
#undef I
109
#undef S
110
#undef H
111
#undef HTTPH
112
113
/*lint -restore */