ByteCode.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 1996-2018 The Squid Software Foundation and contributors
3  *
4  * Squid software is distributed under GPLv2+ license and includes
5  * contributions from numerous individuals and organizations.
6  * Please see the COPYING and CONTRIBUTORS files for details.
7  */
8 
9 #ifndef _SQUID_FMT_BYTECODE_H
10 #define _SQUID_FMT_BYTECODE_H
11 
12 /*
13  * Squid configuration allows users to define custom formats in
14  * several components.
15  * - logging
16  * - external ACL input
17  * - deny page URL
18  *
19  * These enumerations and classes define the API for parsing of
20  * format directives to define these patterns. Along with output
21  * functionality to produce formatted buffers.
22  */
23 
24 namespace Format
25 {
26 
27 /*
28  * Bytecodes for the configureable format stuff
29  */
30 typedef enum {
31  LFT_NONE, /* dummy */
32 
33  /* arbitrary string between tokens */
35 
36  /* client TCP connection remote end details */
41 
42  /* client TCP connection local end details */
45  /*LFT_CLIENT_LOCAL_FQDN, (rDNS) */
48 
50 
51  /* client connection local squid.conf details */
54  /*LFT_LOCAL_LISTENING_NAME, (myportname) */
55 
56  /* server TCP connection remote end details */
60 
61  /* server TCP connection local end details */
67 
68  /* original Request-Line details recieved from client */
75  /* LFT_CLIENT_REQ_QUERY, */
77 
78  /* Request-Line details recieved from client (legacy, filtered) */
82  /*LFT_REQUEST_QUERY, */
86 
87  /* request header details pre-adaptation */
91 
92  /* request header details post-adaptation */
96 
97  /* Request-Line details sent to the server/peer */
104  /*LFT_SERVER_REQ_QUERY, */
106 
107  /* request meta details */
110  /*LFT_REQUEST_SIZE_BODY, */
111  /*LFT_REQUEST_SIZE_BODY_NO_TE, */
112 
113  /* original Status-Line details recieved from server */
114  // XXX: todo
115 
116  /* Status-Line details sent to the client */
117  // XXX: todo
118 
119  /* response Status-Line details (legacy, filtered) */
123  /*LFT_HTTP_STATUS, */
125 
126  /* response header details pre-adaptation */
130 
131  /* response header details post-adaptation */
132  /* LFT_ADAPTED_REPLY_HEADER, */
133  /* LFT_ADAPTED_REPLY_HEADER_ELEM, */
134  /* LFT_ADAPTED_REPLY_ALL_HEADERS, */
135 
136  /* response meta details */
141  /*LFT_REPLY_SIZE_BODY, */
142  /*LFT_REPLY_SIZE_BODY_NO_TE, */
143 
145 
146  /* client credentials */
147  LFT_USER_NAME, /* any source will do */
150  /*LFT_USER_REALM, */
151  /*LFT_USER_SCHEME, */
153  /* LFT_USER_SSL_CERT, */
154 
155  /* global time details */
160  LFT_TIME_START, // the time the master transaction started
161 
162  /* processing time details */
167 
168  /* Squid internal processing details */
173 
177 
179 
180 #if USE_ADAPTATION
186 #endif
187 
188 #if ICAP_CLIENT
189 
191 
199 
203 
207 
212 #endif
214 
215 #if USE_OPENSSL
231 #endif
232 
234  LFT_PERCENT, /* special string cases for escaped chars */
235 
236  // TODO assign better bytecode names and Token strings for these
237 #if USE_OPENSSL
242 #endif
247 
248 } ByteCode_t;
249 
251 enum Quoting {
258 };
259 
260 } // namespace Format
261 
262 #endif /* _SQUID_FMT_BYTECODE_H */
263 
Quoting
Quoting style for a format output.
Definition: ByteCode.h:251
ByteCode_t
Definition: ByteCode.h:30

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors